循环练习题
- 1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
- 2. 判定一个数字是否是素数
- 3. 打印 1 - 100 之间所有的素数
- 4. 输出 1000 - 2000 之间所有的闰年
- 5. 输出乘法口诀表
- 6. 求两个正整数的最大公约数
- 7. 求出0~999之间的所有“水仙花数”并输出。
- 8. 写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1
- 9. 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 10. 猜数字游戏
1. 根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
if(age <= 18) {
System.out.println("少年");
} else if (age >= 19 && age <=28) {
System.out.println("青少年");
} else if (age >= 29 && age <=55) {
System.out.println("中年");
} else {
System.out.println("老年(56以上)");
}
}
2. 判定一个数字是否是素数
public static void main(String[] args) {
// 判断是不是素数
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int i = 2;
while(i <= Math.sqrt(num)) {
if (num % i == 0) {
System.out.println(num+" 不是素数");
return;
}
i++;
}
System.out.println(num+"是素数");
}
3. 打印 1 - 100 之间所有的素数
public static void main(String[] args) {
for (int j = 100; j<=200 ;j++) {
int i;
for (i = 2;i <= Math.sqrt(j);i++) {
if(j % i == 0) {
//System.out.println("j不是素数:"+j);
break;
}
}
if(i > Math.sqrt(j)) {
System.out.print(j +" ");
}
}
}
4. 输出 1000 - 2000 之间所有的闰年
public static void main(String[] args) {
//1000-2000所有的闰年
int year = 1000;
while (year <= 2000) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
System.out.print(year+" ");
}
year++;
}
}
5. 输出乘法口诀表
public static void main(String[] args) {
int ret = 1;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
ret = i * j;
System.out.print(i+"*"+j+"="+ret+" ");
}
System.out.println(" ");
}
}
6. 求两个正整数的最大公约数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = a % b;
while (c != 0) {
a = b;
b = c;
c = a % b;
}
System.out.println(b);
}
7. 求出0~999之间的所有“水仙花数”并输出。
(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如: 153=13+53+3^3 ,则153是一个“水仙花数”。)
public static void main(String[] args) {
for (int i = 1; i <= 999; i++) {
int count = 0;
int tmp = i;
while (tmp != 0) {
count++;
tmp /= 10;
}
tmp = i;
int sum = 0;
while(tmp != 0) {
sum += Math.pow(tmp % 10,count);
tmp /= 10;
}
if (i == sum) {
System.out.println(i);
}
}
}
8. 写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1
public static void main(String[] args) {
int n =7;
int count = 0;
while (n != 0) {
count++;
n = n & (n-1);
}
System.out.println(count);
}
9. 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
public static void main(String[] args) {
int n = 7;
for (int i = 30; i >= 0; i -= 2) {
System.out.print(((n >> i) & 1)+" ");
}
System.out.println(" ");
for (int i = 31; i >= 1 ; i -= 2) {
System.out.print(((n >> i) & 1)+" ");
}
}
10. 猜数字游戏
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//系统生成一个随机数
Random random = new Random();
int randNum = random.nextInt(100);//[0-100)
while (true) {
System.out.println("请输入你要猜的数字:");
int num = scanner.nextInt();
if (num < randNum) {
System.out.println("猜小了。");
} else if (num > randNum) {
System.out.println("猜大了。");
}else {
System.out.println("猜对了。");
break;
}
}
scanner.close();
}