循环综合练习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

1.逢七过

 /*
        朋友聚会的时候可能会玩一个游戏:逢7过
        游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍
        数时都要说过:过
        需求:使用程序在控制台打印出1-100之间的满足逢七必过规则的数据

        */
        
        Scanner sc = new Scanner(System.in);
        System.out.println("输入起始数");
        int start= sc.nextInt();
        System.out.println("输入终止数");
        int end= sc.nextInt();
        
        for (;start<=end;start++){
            if (start%7==0 || start%10==7 || start/10==7){
                System.out.println("过");
                continue;
            }
            System.out.println(start);
        }

2.求平方根

 /*
       需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。
            结果只保留整数部分,小数部分将被舍去。
        */
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个大于或等于2的整数:");
        int x= sc.nextInt(),i=0;

        // 自己写的原版
        if (x>=2){
            while (i*i<x){
                i++;
            }
            if (i*i==x){
                System.out.println(i+"是"+x+"平方根的整数部分");
            }else {
                System.out.println((i-1)+"是"+x+"平方根的整数部分");
            }
        }

        //视频讲解后的修改版
        if (x>=2){
            for (int j = 1;j * j <= x;j++){
                if (j * j == x){
                    System.out.println(j+"是"+x+"平方根的整数部分");
                    break;
                }else if(j * j > x){
                    System.out.println((j - 1)+"是"+x+"平方根的整数部分");
                    break;
                }
            }
        }else {
            System.out.println("请输入正确数据");
        }

3.求质数

 /*
      需求:键盘录入一个正整数x,判断该整数是否为一个质数。
        */

        Scanner sc = new Scanner(System.in);
        System.out.println("输入正整数:");
        int x= sc.nextInt();
        boolean flag = true;

        for (int i=2;i<x;i++){
            if (x%i==0){
                flag=false;
            }
        }
        if (flag){
            System.out.println(x+"是质数");
        }else {
            System.out.println(x+"不是质数");
        }

简化思路

    假设a*b=81,那么这两个数一定 一个大于等于平方根;一个小于等于平方根
    那么在其平方根的范围呢不能被整除,其原数一定是质数
    条件:   1、被除数起始为2
    	    2、被除数小于等于平方根
    	    3、被除数自增

4.猜数字小游戏

/*
      需求:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
       */

       // Random r = new Random();
        //int number = r.nextInt(101);number的范围是0-100

        /*
       秘诀: 1.让这个范围的头尾都减去一个值,让这个值从0开始
             2.尾巴+1
             3.最终的结果再加上第一步得值
         */

        //1.生成随机数(此代码不能放入循环中,否则每一次都会产生一个新的随机数)
         Random r = new Random();
        int number = r.nextInt(100)+1;
        int count = 0 ;

        //2.猜这个数字是多少
        Scanner sc =new Scanner(System.in);


        //3.判断两个数字是否相同
        while (true){
            System.out.println("请输入你要猜的数:");
            int guessNumber = sc.nextInt();

            count++;
            if (count == 10){
                System.out.println("保底了");
                break;
            }


            if (guessNumber>number){
                System.out.println("猜大了");
            }else if (guessNumber>number) {
                System.out.println("猜小了");
            }else {
                System.out.println("哇!金色传说!");
                break;
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是回复: 这个练习是要求我们编写一个程序,可以根据用户输入的年份和月份,打印出对应的日历。具体实现可以使用循环来完成,需要考虑到每个月的天、每周的起始日等因素。这是一个比较综合练习,可以帮助我们巩固循环和条件语句的使用,同时也可以提高我们的编程能力。 ### 回答2: 这道练习的目的是让我们通过编写程序来实现日历打印功能,从而巩固和练习Java循环的运用。我们需要实现的是,输入年份和月份,可以打印出该月的日历,以及该月的第一天是星期几。 首先,我们需要了解计算机中时间和日期的存储方式。在计算机中,时间日期被存储为一个值,通常是从一个起始时间点开始算起的秒。在Java中,可以使用Date和Calendar类来操作时间和日期。我们需要使用Calendar类来获取年份、月份、日期等信息。 其次,我们需要了解如何计算一个月的天Java中,可以使用Calendar类的getActualMaximum方法来获取某个月的最大天。同时,我们还需要知道某一天是星期几,这可以使用Calendar类的get方法来获得。 接着,我们需要使用循环语句来完成日历的打印。我们可以使用一个组来存储日历。在打印日历时,我们需要注意格式的调整,如对齐、行末换行等。 最后,我们需要编写一个主程序来测试我们的日历打印功能。在主程序中,我们可以通过Scanner类来获取用户输入的年份和月份,然后调用我们编写的打印日历的方法来输出结果。 总的来说,这道练习对我们掌握Java循环的应用非常有帮助,并且还锻炼了我们对于日期和时间的处理能力。在以后的学习和工作中,这些知识和技能都将得到广泛的应用。 ### 回答3: 练习-java循环综合练习四之日历打印。 这道题目要求我们能够编写程序,输入年份和月份,打印出当月的日历。具体来说,日历的格式应该是一个7行5列的矩阵,其中第一行为星期一至星期五的名称,第行开始则是具体的日期(从1号开始),并且按照每周从星期一开始的顺序排列。在打印日历的时候,需要考虑到每个月的天是不同的,以及各个月之间的闰年情况。 为了实现这个功能,我们需要按照以下步骤进行编码: 1. 接收用户输入,包括年份和月份。 2. 计算当月的天,需要考虑到闰年的情况。 3. 计算当月的第一天是星期几,以此来确定第一行的输出内容。 4. 循环输出日期,每7个为一组,输出一行。如果月末不在星期日,则需要在最后一行输出空格进行对齐。 5. 打印完毕后,需要输出一条分隔线进行标识,方便用户查看。 在编写代码的过程中,需要注意以下几点: 1. 闰年的计算方式是“4年一润,百年不润,四百年再润”,因此需要进行特判。 2. 计算星期几的时候,需要使用0~6来表示星期日至星期六。 3. 输出一行日期时,需要考虑当月的天以及星期几,避免输出过多或不足的日期。 综上,我们可以写出如下的伪代码: ``` 输入年份和月份 计算当月的天,包括闰年计算 计算当月第一天是星期几 打印第一行星期几的名称 定义变量dayCount为1 循环输出日期: 输出dayCount的值,并令dayCount加1 如果dayCount恰好是周六,则换行 判断dayCount是否超过当月天,如果是则跳出循环 如果最后一天不是周日,则输出空格对齐 输出分隔线 ``` 至此,我们已经完成了这道题目的准备工作。接下来需要进行具体代码实现,这里就不再赘述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值