25、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
package test2;
public class test23 {
public static void main(String[] args) {
// TODO Auto-generated method stub
test23 t = new test23();
System.out.println(t.d(5));
}
public int d(int x) {
if (x == 1)
return 10;
else
return 2 + d(x - 1);
}
}
26、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
package test2;
import java.util.Scanner;
public class test24 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char[] ch = s.toCharArray();
System.out.println(ch.length);
for (int i = 0; i < ch.length; i++) {
System.out.print(ch[ch.length - 1 - i] + " ");
}
}
}
分析:用String类型来接收数据更方便(对本题的要求来说)
需要注意的点:无
27、请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
package test2;
import java.util.Scanner;
public class test26 {
public static void main(String[] args) {
getChar tw = new getChar();
System.out.println("请输入星期的第一个大写字母:");
char ch = tw.getChar();
switch (ch) {
case 'M':
System.out.println("Monday");
break;
case 'W':
System.out.println("Wednesday");
break;
case 'F':
System.out.println("Friday");
break;
case 'T': {
System.out.println("请输入星期的第二个字母:");
char ch2 = tw.getChar();
if (ch2 == 'U') {
System.out.println("Tuesday");
} else if (ch2 == 'H') {
System.out.println("Thursday");
} else {
System.out.println("无此写法!");
}
}
;
break;
case 'S': {
System.out.println("请输入星期的第二个字母:");
char ch2 = tw.getChar();
if (ch2 == 'U') {
System.out.println("Sunday");
} else if (ch2 == 'A') {
System.out.println("Saturday");
} else {
System.out.println("无此写法!");
}
}
;
break;
default:
System.out.println("无此写法!");
}
}
}
class getChar {
public char getChar() {
Scanner s = new Scanner(System.in);
String str = s.nextLine();
char ch = str.charAt(0);
if (ch < 'A' || ch > 'Z') {
System.out.println("输入错误,请重新输入");
ch = getChar();
}
return ch;
}
}
分析:可以用if或switch,用switch更简单一些,这里我直接用网上的代码了
需要注意的点:Java提供的方法里没有直接输入char型数值的方法,需要自己创建一个,当然,你也可以用其它方法
28、求100之内的素数
package test2;
public class test27 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int m = 0, j, count = 0;
System.out.print("2 ");
for (int i = 3; i <= 100; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
break;
}
}
if (j == i) {
System.out.print(i + " ");
count++;
}
}
}
}
分析:素数就是只能被1和自己整除的数
需要注意的点:对数的历遍需要从3开始,但数字2也是素数,所以需要提前输出2
-------------------------------------------------------------------------------------------------------------
明天继续经典例题