java中程序控制的典例

简介: java中程序控制的典例

1求水仙花数

求100到999三位数所有水仙花数并且输出(水仙花数指的就是一个三位数,其各位数字的立方和等于该数本身,例:153=1*1*1+5*5*5+3*3*3)

public class demo {
    public static void main(String[] args) {
        int i = 100;
        for(i=100;i<=999;i++){//产生三位数100到999
            int a =i%10;//求出个位上的数字
            int b=i/10%10;//求出十位上的数字
            int c=i/100;//求出百位上的数字
            if(i==a*a*a+b*b*b+c*c*c){//利用水仙花数定义进行判断
                System.out.println(i);
            }
        }
    }
}

2二进制为1的个数

输入一个整数,求其二进制数1的个数

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a = sc.nextInt();//输入一个整数
        int b = 0;
        int count = 0;//对于需要计算个数的一定需要一个计数整形
        for (b=0;b<=32;b++){ //因为是一个整形,所以为四个字节,32个位
          int c = a &(1<<b);//通过按位与进行计算判断
          if(c!=0){
              count++;
          }
        }
        System.out.println(count);
    }
}

3求两个数的最大公约数

输入两个整数求其最大公约数

import java.util.Scanner;
 
public class testd {
    public static void main(String[] args) {
        Scanner dc = new Scanner(System.in);
        int a = dc.nextInt();
        int b = dc.nextInt();//产生了两个整数
        int c = a%b;//对a与b进行取模运算
        while(c!=0) {//如果模不为零说明a与b之间不是直接的倍数,需要利用辗转相除的方法进行求最大公约数
            a=b;
            b=c;
            c=a%b;//实现辗转相除的方法
        }
 
 
        System.out.println("最大公约数为"+b);//打印出最大公约数
    }
}

4这是一个简单的猜数字游戏

系统随机产生一个数字,然后用户输入来猜数字

import java.util.Random;
import java.util.Scanner;
 
//这是一个简单的猜数字游戏
public class demo {
    public static void main(String[] args) {
        Random random = new Random();//系统随机产生一个数
        Scanner SC = new Scanner(System.in);
        int toguess = random.nextInt(100);
        while(true){
            System.out.println("请输入一个数字(1~100):");//给用户一个提示
            int num = SC.nextInt();
            if(num>toguess){
                System.out.println("大了");
            }else if(num<toguess){
                System.out.println("小了");
            }else{
                System.out.println("猜对了");
                break;
            }
        }
        SC.close();
    }
}

5判断一个数是否为素数

方法一:

public class demo {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int a = sc.nextInt();//输入一个数
            int j = 2;
            for(j=2;j<a;j++){//根据素数的定义。利用2到a-1去除
                if(a%j==0) {
                    System.out.println("不是素数");
                    break;
                }
            //判断是否为素数
            }if(j>=a){
                System.out.println("素数");
            }
        }
}

方法二

mport java.util.Scanner;
 
public class demo {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a = sc.nextInt();
        int i =2;
        for(i=2;i<=Math.sqrt(a);i++){
            if(a%i==0){
                System.out.println(a+"不是素数");
                break;
            }
 
        }
        if(i>Math.sqrt(a)){//素数的判定条件
            System.out.println(a+"是素数");
        }
    }
}/*
    m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~  之间的每一个整数去除就可以了。如果 m 不能被 2 ~  间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。
 
原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 ,另一个大于或等于 。例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之间有无因子即可。
 
     */

6输出1到100的素数

public class demo {
    public static void main(String[] args) {
        int a= 1;
        for(a=1;a<=100;a++){
            int j = 2;
            for(j=2;j<a;j++){//根据素数的定义。利用2到a-1去除
                if(a%j==0) {//只要a%j为零,说明他不是一个素数
                    break;
                }
            }
            //如果a>=j说明这就是一个素数
            if(a>=j){
                System.out.println(a+"素数");
            }
        }
 
    }
}

7打印九九乘法口诀表

 
public class demo {
    public static void main(String[] args) {
        int i = 1;
        for(i=1;i<=9;i++){//打印九九乘法口诀表的行
            for(int j = 1;j<=i;j++){//打印九九乘法口诀表的列
                System.out.print(i+"*"+j+"="+i*j);//打印九九乘法口诀表
                System.out.print("\t");//水平制表符,使得式子之间分隔
            }
            System.out.println();//换行
        }
    }
}

8简单的登录系统

模拟三次输入密码场景,最多只能输入三次,密码正确提示登录成功,错误给予提示。

import java.util.Scanner;
 
public class demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i =2 ;//作为循环变量,以及提示用户还有几次机会
        for(i=2;i>=0;i--){
            String password = sc.nextLine();//从键盘读入一个字符串
            if(password.equals("123456")){//正确直接跳出循环
                System.out.println("密码正确,登录成功");
                break;
            }else{
                System.out.print("密码错了,");
                System.out.println("你还有"+i+"次机会");
            }
        }
    }
}

9打印出分数的求和问题

求1/1-1/2+1/3~~~+1/99-1/100

public class demo {
    public static void main(String[] args) {
        int i = 0;
        double sum = 0;//定义一个变量用于求和
        int n = 0;
        for(i=1;i<=100;i++){
            if(i%2==0){
                 n = -1;
            }else{
                n=1;
            }       //分支结构用于产生正负一
            sum+=n*1.0/i;
        }
        System.out.println(sum);
    }
}

10求出1000年到2000年之间的闰年

public class demo {
    public static void main(String[] args) {
        int year = 1000;
        for (year=1000;year<=2000;year++){ //闰年的实现条件
            if(year%400==0||(year%4==0&&year%100!=0)){
                System.out.println(year+"闰年");
            }
        }
    }
}

11求最小公倍数

import java.util.Scanner;
 
public class text1{
    //求出最小公倍数
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int d = a*b;
        while(a%b!=0){
            int c=a%b;
            a=b;
            b=c;
        }
        int ret =d/b;//在求最大公约数的基础上进行。利用a*b然后再除以最大公约数就可以得到最大公倍数
        System.out.println("最小公倍数为:"+ret);
    }
}

12 获取一个数的二进制序列中所有的奇数位与偶数位,分别输出二进制序列

import java.util.Scanner;
 
public class demo {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a = sc.nextInt();
        //输出二进制序列的偶数与奇数二进制序列
        System.out.print("偶数位");
        //因为为整型所以占了32个位,偶数位从1,3,5到31(计算机从0到31位,所以第一位应该是偶数位)
        for(int i = 31;i>=1;i-=2){
            System.out.print(a>>i&1);
        }
        //同理求得奇数位
        System.out.print("奇数位:");
        for(int i = 30;i>=0;i-=2){
            System.out.print(a>>i&1);
        }
    }
}
目录
相关文章
|
8天前
|
XML 存储 JSON
Java程序部署
Java程序部署
|
9天前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
18 5
|
9天前
|
Java 编译器 数据库连接
探索Java中的异常处理:提升程序的鲁棒性
【9月更文挑战第25天】在Java的世界里,异常是那些不请自来、令人头疼的“客人”。它们悄无声息地潜入我们的代码,一旦出现,便可能导致程序崩溃或行为异常。但是,如果能够妥善管理这些异常,我们就能将潜在的灾难转变为增强程序鲁棒性和用户体验的机会。本文将通过深入浅出的方式,带领读者理解Java异常处理的重要性,并提供实用的策略来优雅地处理这些意外情况。让我们一起学习如何在Java中捕捉、处理和预防异常,确保我们的程序即使在面对不可预见的错误时也能保持稳健运行。
|
16天前
|
监控 Java 数据库
Java程序如何进行不停机更新?
Java程序如何进行不停机更新?
17 1
|
2月前
|
安全 Java API
16 个最常用的 Java 实用程序类
【8月更文挑战第16天】
156 1
16 个最常用的 Java 实用程序类
|
1月前
|
缓存 监控 安全
如何提高 Java 高并发程序的性能?
以下是提升Java高并发程序性能的方法:优化线程池设置,减少锁竞争,使用读写锁和无锁数据结构。利用缓存减少重复计算和数据库查询,并优化数据库操作,采用连接池和分库分表策略。应用异步处理,选择合适的数据结构如`ConcurrentHashMap`。复用对象和资源,使用工具监控性能并定期审查代码,遵循良好编程规范。
|
2月前
|
Java 编译器 开发者
Java中的异常处理是确保程序稳定性的关键
Java中的异常处理是确保程序稳定性的关键。本文探讨八大最佳实践:理解异常体系,选用恰当异常类型,提供详细错误信息,精用try-catch,善用finally块,利用try-with-resources简化资源管理,记录异常便于追踪,及避免finally中抛异常。遵循这些原则,提升代码质量和错误管理能力。
18 1
|
2月前
|
Java 开发者
在Java编程的广阔天地中,if-else与switch语句犹如两位老练的舵手,引领着代码的流向,决定着程序的走向。
在Java编程中,if-else与switch语句是条件判断的两大利器。本文通过丰富的示例,深入浅出地解析两者的特点与应用场景。if-else适用于逻辑复杂的判断,而switch则在处理固定选项或多分支选择时更为高效。从逻辑复杂度、可读性到性能考量,我们将帮助你掌握何时选用哪种语句,让你在编程时更加得心应手。无论面对何种挑战,都能找到最适合的解决方案。
33 1
|
2月前
|
搜索推荐 Java 程序员
在Java编程的旅程中,条件语句是每位开发者不可或缺的伙伴,它如同导航系统,引导着程序根据不同的情况做出响应。
在Java编程中,条件语句是引导程序根据不同情境作出响应的核心工具。本文通过四个案例深入浅出地介绍了如何巧妙运用if-else与switch语句。从基础的用户登录验证到利用switch处理枚举类型,再到条件语句的嵌套与组合,最后探讨了代码的优化与重构。每个案例都旨在帮助开发者提升编码效率与代码质量,无论是初学者还是资深程序员,都能从中获得灵感,让自己的Java代码更加优雅和专业。
16 1
|
2月前
|
Java
在Java编程的广阔天地中,条件语句是控制程序流程、实现逻辑判断的重要工具。
在Java编程中,if-else与switch作为核心条件语句,各具特色。if-else以其高度灵活性,适用于复杂逻辑判断,支持多种条件组合;而switch在多分支选择上表现优异,尤其适合处理枚举类型或固定选项集,通过内部跳转表提高执行效率。两者各有千秋:if-else擅长复杂逻辑,switch则在多分支选择中更胜一筹。理解它们的特点并在合适场景下使用,能够编写出更高效、易读的Java代码。
32 1
下一篇
无影云桌面