JAVA基础100道练习题——9编写一个猜数字游戏——10求出0~100000之间的所有“水仙花数”并输出

<1>题目介绍1

编写一个猜数字游戏,数字范围0~100之间。用户输入,程序提示用户数字猜大了还是猜小了,直到用户才对数字程序才退出

<2>思路分析

用户输入的数据和随机值做对比,如果输入的数据大于随机值就提示猜大了,相反则提示猜小了,程序只有当用户猜对了才退出循环

<3>代码展示

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Random random = new Random();
        int Guessnum = random.nextInt(100);
        while(true){
            System.out.println("请输入数字");
            int num = scan.nextInt();
            if(num>Guessnum){
                System.out.println("大了");
            }else if(num<Guessnum){
                System.out.println("小了");
            }else{
                System.out.println("恭喜你猜对了");
            }
        }
    }

<4>结果展示

请输入数字
1
小了
请输入数字
100
大了
请输入数字
50
大了
请输入数字
30
恭喜你猜对了

<1>题目介绍2

求出0~100000之间的所有“水仙花数”并输出,水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1 ^ 3+5 ^ 3+3 ^ 3,则153是一个“水仙花数”

<2>思路分析

  • 确定数字有几位
  • 让数字的每一个数求n(位数)次方,然后相加
  • 比较数字与最终合数是否相等,相等则输出

<3>代码展示

扫描二维码关注公众号,回复: 14401319 查看本文章
public static void main(String[] args) {
        for(int i = 0;i<1000000;i++){
            int tmp = i;
            int count = 0;
            while(tmp!=0){
                count++;
                tmp/=10;
            }
            tmp = i;
            int sum = 0;
            while(tmp!=0){
                sum+=Math.pow((tmp%10),count);
                tmp/=10;
            }
            if(sum==i){
                System.out.println(i);
            }
        }
}

<4>结果展示

猜你喜欢

转载自blog.csdn.net/yahid/article/details/123446513