2021-03-25

今天学的基础————关于循环知识

//找出三位数当中所有的水仙花数
      	final short UNIT = 10;//降位处理
        short num = 100,ones,tens,hundreds,copy,sum;
        while (num<1000){
            copy = num;
            ones = (short)(copy%UNIT);//%返回值是int类型
            copy /=UNIT;
            tens = (short)(copy%UNIT);
            copy /=UNIT;
            hundreds = copy;
            sum =(short) (Math.pow(ones,3)+Math.pow(tens,3)+Math.pow(hundreds,3));

            if(sum==copy){
                System.out.println(sum+"是水仙花数");
            }
            num++;
        }

//根据年月日,计算该日期是该年的第多少天
//问题空间=>解空间

		int year = 2020,month = 5,day = 4,total = day,copy = month;
        copy--;
        while(copy>0){
            switch(copy){
                case 1: case 3:case 5: case 7:case 8: case 10: case 12:
                    total +=31;
                    break;
                case 4: case 6:case 9: case 11:
                    total +=30;
                    break;
                case 2:
                    total += year%4==0 &&year%100!=0 || year%400==0?29:28;
                    break;

            }
            copy--;

        }

            System.out.println(""+year+"年"+month+"月"+day+"日有"+total+"天");

素数(质数):不能被【除1和自身以外】的其他数【整除】的正整数

		   int num = 3,count = 2;
           boolean isPM = true;

           while (count<num){
               if(num%count==0){
                    isPM = false;
                }
                    count++;

            }
            System.out.println(num+(isPM?"是":"非")+"质数");

求1~100的和

int count = 1,sum = 0;
        while(count<=100){
            sum = count + sum;
            count++;
        }
        System.out.println("1~100的和为"+sum);
        //高斯求法
        int sum =0,i = 1,j = 100;
        while (i<j){
            sum += i+j;
            i++;
            j--;

        }

        System.out.println("RESULT = "+sum);

求1~100之间能被3或者7整除的整数之和

int sum =0,i = 1;
                while(i<=100){
                    if(i%3!=0&&i%7!=0){
                        i++;
                        continue;
                    }
                    sum += i;
                    i++;
                }
        System.out.println(sum);

猜随机数:给定一个随机数的范围,循环控制台重复输入数值,告知大了,小了(继续循环),中了(终止循环break)

 Random rand = new Random();
        final int num = rand.nextInt(99);
        Scanner input = new Scanner(System.in);
        System.out.println(" 请输入1~100之间的整数");
        int i = input.nextInt(),max=100,min=1;
        while(true){
            if(i==num){
                System.out.println("恭喜你猜对了这个数是"+i);
                break;
            }
            if(i>num){
                max = i;
                System.out.println("请输入"+min+"到"+max+"之间的正整数");
                i = input.nextInt();
                continue;
            }
            if (i<num){
                min = i;
                System.out.println("请输入"+min+"到"+max+"之间的正整数");
                i = input.nextInt();
                continue;
            }
        }

猜拳游戏:1、锤>2、剪>3、布,随机数生成拳号代表一方,控制到输入拳号表示另一方,请制定判定规则,判定输赢,并完成5局3胜的赛制

Random rand = new Random();
        int a_win_times =0,b_win_times=0;
        Scanner input = new Scanner(System.in);

        while(a_win_times!=3 && b_win_times!=3){
            System.out.println("请输入1,2,3中其中的数字,其中1、锤2、布3、剪");
            int b =input.nextInt();
            int a =1+rand.nextInt(3);
            if(a==b){
                System.out.println("平局");
                continue;
            }
            if((a==3&&b==2)||(a==2&&b==1)||(a==1&&b==3)){
                a_win_times++;
                System.out.println("电脑赢");
                continue;
            }
            if((a==1&&b==2)||(a==2&&b==3)||(a==3&&b==1)) {
                b_win_times++;
                System.out.println("我赢");
            }


        }


        if(a_win_times==3){
            System.out.println("电脑胜");
        }else
            System.out.println("我胜");

循环录入10个人的成绩,求平均成绩(去掉一个最高成绩和一个最低成绩),并倒序输出前三名的成绩

double max=0,mid=0,min=0,cur=0,sum = 0,aver;
        int count = 0;
        while(count<10){
            count++;
            Scanner input = new Scanner(System.in);
            System.out.println("输入其中一个成绩");
            double i = input.nextDouble();
            sum += i;
            if(max<i){
                cur = min;
                min = mid;
                mid = max;
                max = i;
                continue;
            }
            if(mid<i){
                cur = min;
                min = mid;
                mid = i;
                continue;
            }
            if(min<i){
                cur = min;
                min = i;
                continue;
            }
            if(cur<i){
                cur= i;
            }
        }
        System.out.println("min="+min+"mid="+mid+"max="+max);
        aver = (sum-max)/8;
        System.out.println("平均分为"+aver);
        
        //以下方法是种遍历尝试
        Scanner input = new Scanner(System.in);
        double sum = 0;double top1,top2,top3,top4,temp;
        int count =0;
            top1 = input.nextDouble();
            top2 = input.nextDouble();
            top3 = input.nextDouble();
            if(top1<top2){
                sum = sum +top1 +top2;
                temp =top1;
                top1 =top2;
                top2 =temp;
            }else{
                sum =sum +top1 +top2;
            }
            if(top2<top3){
                sum = sum + top3;
                temp= top2;
                top2= top3;
                top3= temp;
            }else{
                sum =sum + top3;
            }
            while(count<7){
                count++;
                System.out.println("请输入下一个成绩");
                top4 = input.nextDouble();
                sum = sum +top4;
                if(top3<top4){
                    temp=top3;
                    top3=top4;
                    if(top2<top3){
                        temp=top2;
                        top2=top3;
                        top3=temp;
                        if(top1<top2){
                            temp=top1;
                            top1=top2;
                            top2=temp;
                        }
                    }
                }

            }
            System.out.println("总分为"+sum);
            System.out.println("第三名"+top3+"第二名"+top2+"第一名"+top1);
        

一对兔子圈起来,已知一对兔子每个月生一对小兔子,而小兔子出生后三个月起每月生一对兔子,问一年后有多少对兔子

int a =1,b =1,count =0;

        for(int c;count<10;count++) {
            c = a + b;
            System.out.println(c);
            a = b;
            b = c;
        }

请输出前20个斐波那契数列值,如:1,1,2,3,5,8,13…

int a =1,b =1,count =0;
        System.out.println(a);
        System.out.println(b);

        for(int c;count<18;count++){
            c = a +b;
            System.out.println(c);
            a = b;
            b = c;
         }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值