文章目录
- 1.编写程序数一下 1到 100 的所有整数中出现多少个数字9
- 2.输出 1000 - 2000 之间所有的闰年
- 3.打印 1 - 100 之间所有的素数
- 4.给定一个数字,判定一个数字是否是素数
- 5.根据输入的年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
- 6.打印 X 图形
- 7.完成猜数字游戏 ,用户输入数字,判断该数字是大于,小于,还是等于随机生成的数字,等于的时候退出程序。
- 8.求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本 身,如;153=1+5+3?,则153是一个“水仙花数“。)
- 9.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
- 10.求两个正整数的最大公约数
- 11.求一个整数,在内存当中存储时,二进制1的个数
- 12.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
- 15.输出一个整数的每一位,如:123的每一位是1 , 2 , 3,采用递归方法!
- 16.输入乘法口诀表
- 17.有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。
- 18.求斐波那契数列的第n项。(迭代实现)
【Java逻辑控制】——分支结构丶循环结构经典必刷题
#目录
1.编写程序数一下 1到 100 的所有整数中出现多少个数字9
这道题做题的关键在于 如何找到 判断条件
1.找到个位是9的数:比如 19,29,让这个数 去%10 他们的余数都是 9
2.知道十位是9的数:比如 91, 93,让这个数去/10 他们的结果都等于 9
2.输出 1000 - 2000 之间所有的闰年
这道题做题的关键:我们首先要知道闰年分为 普通闰年 和 世纪闰年
1.普通闰年:能被 4 整除 并且是 100 的 倍数
2.世纪闰年:能被 100 整除 并且 能够 被 400整除
3.打印 1 - 100 之间所有的素数
这道题做题的关键;我们需要明白什么是 素数。
素数:能够被 1 和 他 自身 整除的 数
注意:1 不是 素数
。
4.给定一个数字,判定一个数字是否是素数
这道题和第三道题思路一样,这里我们直接上代码
这里还有第二种方法
5.根据输入的年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
6.打印 X 图形
这道题是牛客上面的一道题这里我给大家上一下牛客链接:
https://www.nowcoder.com/practice/83d6afe3018e44539c51265165806ee4
这道题的做题思路是什么呢,在这里我给大家画个图方便大家理解
图有点潦草哈,各位老铁,我相信你们能够看懂的,抱歉
这里输入的 n 为 5,对应 4 个 下标,从左边开始看,第一个 x 所对应的判断条件是
'if(i ==j) 从右边开 x 所对应的判断条件是 if(i+j == n-1)
7.完成猜数字游戏 ,用户输入数字,判断该数字是大于,小于,还是等于随机生成的数字,等于的时候退出程序。
知道题直接给大家上代码了,大家可以复制去跑一跑,也是比较有趣
8.求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本 身,如;153=1+5+3?,则153是一个“水仙花数“。)
这道题,我给大家一个简单且粗暴的方法且看代码
9.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
10.求两个正整数的最大公约数
这里 注意! 最大公约数 和 最小公倍数给大家上个图
11.求一个整数,在内存当中存储时,二进制1的个数
这里使用 按位与 方法
这里给大家复习一个 位运算符
按位与 & : 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.
按位或 | : 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1.
按位异或 ^ : 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.
12.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(“奇数位:”);
for (int i = 31; i>=1 ; i-=2) {
System.out.println(n>>i&1);
}
System.out.println(“偶数位:”);
for (int i = 30; i >=2 ; i-=2) {
System.out.println(n>>i&1);
}
}
13.编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序
public static void main(String[] args) {
String passWord = “1234”;
Scanner scanner = new Scanner(System.in);
System.out.println(“请输入密码”);
int relyTime = 3;//有3次机会
for (int i = 0; i < 3; i–) {
String input = scanner.nextLine();
if(input.equals(passWord)){
System.out.println(“输入正确!”);
break;
}
else {
relyTime–;
System.out.println(“输入错误,请重新输入,还有” + relyTime + “次机会”);
}
}
if(relyTime == 0) {
System.out.println(“输入次数用完,退出程序”);
}
}
15.输出一个整数的每一位,如:123的每一位是1 , 2 , 3,采用递归方法!
知道题无非就是 哪一个数来 /10 %10
如果一个数小于了10 直接%10 否者/10
public static void main(String[] args) {//输出一个整数的每一位,如:123的每一位是1 , 2 , 3
//用递归的方法无非就是/10 % 10
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
print(n);
}
public static void print(int n) {//构造个递归方法
if(n < 10) {
System.out.println(n % 10 + " ");
}else {
print(n /10);
System.out.println(n % 10 + " ");
}
}
16.输入乘法口诀表
public static void main(String[] args) {//输出乘法口诀表
for (int i = 1; i <= 9 ; i++) {
for (int j = 1; j <=i ; j++) {
if(j<=i) {
System.out.println(i + "" + j + “=” + ij + " ");
}
}
}
}