Java基础入门篇之逻辑控制练习题与猜数字游戏
1. if语句练习
判断一个年份是否为闰年
int year = 2000; if (year % 100 == 0) { // 判定世纪闰年 if (year % 400 == 0) { System.out.println("是闰年"); } else { System.out.println("不是闰年"); } } else { // 普通闰年 if (year % 4 == 0) { System.out.println("是闰年"); } else { System.out.println("不是闰年"); } }
2. while循环练习
1. 计算 5 的阶乘
5!= 5 * 4 * 3 * 2 * 1
int n = 1; int ret = 1; while(n <= 5){ ret = ret * n; n++; } System.out.println(ret);
运行结果:
2. 计算 1! + 2! + 3! + 4! + 5!
我们基于上一题的代码,在写一个循环,使得可以求到5的阶乘,再把他们相加,代码如下所示:
int k =1; int sum = 0; // 外层循环负责求阶乘的和 while(k <= 5) { int n = 1; int ret = 1; // 里层循环负责完成求阶乘的细节. while (n <= k) { ret = ret * n; n++; } k++; sum = sum + ret; } System.out.println(sum);
运行结果:
3. for循环练习
1. 计算 5 的阶乘
int result = 1; for (int i = 1; i <= 5; i++) { result *= i; } System.out.println("result = " + result);
运行结果:
2. 计算 1! + 2! + 3! + 4! + 5!
int sum = 0; for (int i = 1; i <= 5; i++) { int tmp = 1; for (int j = 1; j <= i; j++) { tmp *= j; } sum += tmp; } System.out.println("sum = " + sum);
运行结果:
4.总结练习
1. 判定一个数字是否是素数
如果能够整除2~根号n之间所有的数,那么他就不是素数
代码演示:
public class TestDemo { public static void main(String[] args) { int n = 19; int i = 2; for (; i <=Math.sqrt(n) ; i++) { if (n % i == 0){ break; } } //有两种情况 1、 不符合循环条件 2、因为遇到了 break if (i > Math.sqrt(n)){ System.out.println(n + " 是素数! "); } } }
运行结果:
2. 打印 1 - 100 之间所有的素数
for (int n = 1; n <= 100; n++) { //int n = 9; int i = 2; for (; i <= Math.sqrt(n); i++) { if(n % i == 0) { break; } } //有几种情况 ? 2--》 1、 不符合循环条件 2、因为遇到了 break if(i > Math.sqrt(n)) { System.out.println(n + " 是素数! "); } }
打印结果:
3. 求出0~999之间的所有“水仙花数”并输出。
(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如: 153=13+53+3^3 ,则153是一个“水仙花数”。)
我们先来了解一下水仙花数是什么,如图所示:
常见的水仙花数:
代码演示:
for (int i = 1; i <= 999999; i++) { //i == 123 int count = 0;//记录位数 int tmp = i; while (tmp != 0) { tmp /= 10; count++; } tmp = i;//123 int sum = 0; while (tmp != 0) { sum += Math.pow(tmp % 10, count); tmp /= 10; } if (sum == i) { System.out.println(i); } }
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
代码演示:
int n = -1; int count = 0; while (n != 0) { n = n & (n-1); count++; } System.out.println(count);
5.猜数字游戏
public class TestDemo { public static void main(String[] args) { Random random = new Random(); Scanner scanner = new Scanner(System.in); int randNum = random.nextInt(101);//[0,101) //50-100的随机数 random.nextInt(50)--[0,50) + 50; while(true){ System.out.println("请输入你要猜的数字"); int sum = scanner.nextInt(); if(sum < randNum){ System.out.println("猜小了"); }else if(sum == randNum){ System.out.println("猜对了"); break; }else{ System.out.println("猜大了"); } } } }
运行结果:
总结
到此这篇关于Java基础入门篇之逻辑控制练习题与猜数字游戏的文章就介绍到这了,更多相关Java逻辑控制练习题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
基于java SSM springboot实现抗疫物质信息管理系统
这篇文章主要介绍了基于JAVA SSM springboot实现的抗疫物质信息管理系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-08-08SpringBoot之bootstrap和application的区别解读
这篇文章主要介绍了SpringBoot之bootstrap和application的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03Java concurrency集合之ConcurrentLinkedQueue_动力节点Java学院整理
这篇文章主要介绍了Java concurrency集合之ConcurrentLinkedQueue,需要的朋友可以参考下2017-06-06Java中HashSet、LinkedHashSet和TreeSet区别详解
这篇文章主要介绍了Java中HashSet、LinkedHashSet和TreeSet区别详解,如果你需要一个访问快速的Set,你应该使用HashSet,当你需要一个排序的Set,你应该使用TreeSet,当你需要记录下插入时的顺序时,你应该使用LinedHashSet,需要的朋友可以参考下2023-09-09
最新评论