作业
- 根据年龄,来打印出当前年龄的人是少年(低于18),青年(19-28),中年(29-55),老年(56以上)
public static void main7(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNextInt()) { //不用结束,可以一直输入
int age = scan.nextInt();//读入一个整数
if (age <= 18) {
System.out.println("少年");
} else if (age <= 28) {
System.out.println("青年");
} else if ( age <= 55) {
System.out.println("中年");
} else {
System.out.println("老年");
}
}
}
- 判断一个数字是不是素数
素数:大于1的正整数, 只能被1和n整除
方法一:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNextInt()) {
int n = scan.nextInt();//读入一个整数
int i = 2;
for (; i < n; i++) { // 2~n-1
if (n % i == 0) {
System.out.println("不是素数!");
break;
}
}
if (i == n) {
System.out.println("是素数!");
}
}
}
结果:
方法二:(优化)
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNextInt()) {
int n = scan.nextInt();//读入一个整数
int i = 2;
for (; i <= Math.sqrt(n); i++) { // 2—n-1
if (n % i == 0) {
System.out.println("不是素数!");
break;
}
}
if (i > Math.sqrt(n)) {
System.out.println("是素数!");
}
}
}
注:调用Math.sqrt(n)代表 n开根号
- 打印1-100之间所有的素数
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for (int j = 2; j <= n; j++) {
int i = 2;
for (; i <= Math.sqrt(n); i++) {
if(j % i == 0){
//System.out.println("不是素数!");
break;
}
}
if(i > Math.sqrt(n)){
System.out.println(j + "是素数!");
}
}
}
结果:
- 乘法口诀表【for循环的嵌套】
public static void main(String[] args) {
for (int i = 1; i <= 9 ; i++) {
for (int j = 1; j <=i ; j++) {
System.out.print(i+"*"+ j +"="+ i*j+" ");//不换行 加空格
}
System.out.println();//换行
}
}
结果:
-
求两个数的最大公约数
方法:辗转相除法
例:24和18
24/18=1…6
18/6=3…0
6就是最大公约数
public static void main(String[] args) {
int a = 24;
int b = 18;
int c = a%b;//24%18=6
while(c!=0){
a = b;//18
b = c;//6
c = a%b;//0
}
System.out.println(b);
}