流程控制知识大闯关
创始人
2024-03-01 22:38:32
0

文章目录

    • 前言
    • 闯关
      • 第一关:打印折纸的次数
      • 第二关:回文数
      • 第三关:求商和余数
      • 第四关:逢七必过
      • 第五关:平方根
      • 第六关:判断一个数是否为质数
      • 第七关:猜数小游戏
    • 总结

前言

既然已经学习了 Java 中的流程控制,接下来就来实际操作下,利用我们所学知识来解决实际的问题。

光学是没有用的,只有不断实践才能了解其中的真正含义。

闯关

第一关:打印折纸的次数

  1. 题目

已知世界上最高的山峰是珠穆朗玛峰,它的高度是 8844.43 米,假设有一张足够大的纸,其厚度为 0.1 毫米,那么请问我要折叠多少次,才能将这张纸折成珠穆朗玛峰的高度?

  1. 解析
折叠次数厚度
10.1
20.2
30.4
40.8
…………

可以发现,纸张初始厚度为 0.1 毫米,而每次折叠之后,折叠后的纸张厚度都是未折叠前的 2 倍。而同时,我们事先是不清楚具体要叠多少次的,所以我们选择 while 来进行循环。

  1. 实现
public class MountQomolangma {public static final double HEIGHT = 8844430;public static void main(String[] args) {// 初始厚度double init = 0.1;// 统计次数int count = 0;while (init < HEIGHT) {init *= 2;count++;}System.out.println("一共需要折叠 " + count + " 次");}
}

第二关:回文数

  1. 题目

假设给你一个整数 x,如果这个数是回文数,打印 true,否则打印 false

回文数:指正序(从左向右)和倒序(从右向左)读都是一样的整数。

  1. 解析

既然回文数的定义是正序和倒序读都是一样,那么我们就把这个数逆转,然后比较逆转的数和原来的数是否相等,如果相等,那么说明这个数是一个回文数,否则它就不是一个回文数。

  1. 实现
import java.util.Scanner;public class Palindromes {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("输入一个整数");// 输入的初始值int num = in.nextInt();// 临时记录int tmp = num;// 反转后的数int reverse = 0;while (num != 0) {int x = num % 10;num /= 10;reverse = reverse * 10 + x;}System.out.println(tmp + " 是一个回文数 :" + (reverse == tmp));}
}

第三关:求商和余数

  1. 题目

给定两个整数,分别是被除数和除数,然后在不使用乘法、除法和 % 运算符的情况下,求出商和余数。

  1. 解析

平时如果要求两数的商,那么可以使用 /,而要求两数的余数则可以使用 %。但现在已经规定不能使用这两个运算符,那么就只想另想办法。

我们知道,其实乘除法归根结底还是加减法的简化,所以我们可以利用减法来实现求两数的商和余数。

  1. 实现
import java.util.Scanner;public class Division {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("输入被除数:");int num1 = in.nextInt();System.out.println("输入除数:");int num2 = in.nextInt();// 商int quotient = 0;// 余数int remainder = 0;while (num1 >= num2) {num1 -= num2;quotient++;remainder = num1;}System.out.format("两数的商是: %d, 两数的余数是: %d\n", quotient, remainder);}
}

第四关:逢七必过

  1. 题目

游戏规则:从任意一个数字开始报数,当要报的数字是包含 77 的倍数时,都要说:过。

打印出 1 - 100 之间的满足逢七必过规则的数据。

  1. 解析

当一个数是 7 的倍数,那么这个数除以 7 的余数为 0。而如果这个数包含 7,那么这个数的个位或者十位是 7

  1. 实现
public class SevenPass {public static void main(String[] args) {for (int i = 1; i <= 100; i++) {int ge = i % 10;int shi = i / 10;if (i % 7 == 0 || ge == 7 || shi == 7) {System.out.println("过");} else {System.out.println(i);}}}
}

第五关:平方根

  1. 题目

输入一个大于等于 2  的整数,计算并返回这个数的平方根,结果只保留整数部分。

  1. 解析

求一个数的平方根,通过遍历的方式,如果在不大于所给数的范围之内存在一个数的平方等于所给数,那么范围内的这个数就是所给数的平方根。而如果范围内存在一个数的平方刚好大于所给数,那么比这个数小 1  的数一定是所给数的平方根的整数部分,也就是我们所求的结果。

  1. 实现
import java.util.Scanner;public class Square {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输入一个整数");int num = scanner.nextInt();for (int i = 1; i <= num; i++) {if (num == i * i) {System.out.println(num + " 的平方根是: " + i);break;} else if (num < i * i) {System.out.println(num + " 的平方根是: " + (i - 1));break;}}}
}

第六关:判断一个数是否为质数

  1. 题目

从键盘输入一个正整数,判断该数是否为质数。

  1. 解析

所谓质数,就是指这个数只能被 1 和它本身整除,要注意 1 既不是质数也不是合数。

此时通过遍历,如果 1  到它之间存在一个数能被所给数整除,那么说明说给数不是一个质数。

  1. 实现
import java.util.Scanner;public class Prime {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输入一个整数");int num = scanner.nextInt();boolean flag = true;for (int i = 2; i < num; i++) {if (0 == num % i) {flag = false;break;}}System.out.println(num + " 是一个质数:" + flag);}
}

第七关:猜数小游戏

  1. 题目

系统随机给出一个 1 - 100  之间的整数,然后用程序实现才出这个数字是多少。

  1. 解析

随机数需要用 Random  包,然后就是通过比较输入的数和生成的随机数大小,直到最后猜中。

  1. 实现
import java.util.Random;
import java.util.Scanner;public class GuessNum {public static void main(String[] args) {Random rand = new Random();int num = rand.nextInt(100) + 1;Scanner scanner = new Scanner(System.in);while (true) {System.out.println("输入你猜的数");int tmp = scanner.nextInt();if (num == tmp) {System.out.println("你猜对了");break;} else if (num < tmp) {System.out.println("你猜大了,再猜");} else {System.out.println("你猜小了,再猜");}}}
}

总结

以上就是关于流程控制中关于 forwhile 的知识测验了,你闯过了几关呢?

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...