【程序22】题目:利用递归方法求5!。
import java.util.Scanner;
public class Demo1 {
public static long fun(int n){
if(n==1||n==0)
return 1;
else
return fun(n-1)*n;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
System.out.println(n+"!="+fun(n));
}
}
【运行结果】
5
5!=120
【程序23】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
import java.util.Scanner;
public class Demo1 {
public static int fun(int n){
if(n==1)
return 10;
else
return fun(n-1)+2;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
System.out.println("第 "+n+"人的年龄:"+fun(n));
}
}
【运行结果】
5
第 5人的年龄:18
【程序24】题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] a={0,0,0,0,0};
int i=0;
while(n>0){
a[i]= n%10;
n/=10;
i++;
}
if (i==1) {
System.out.print("是一位数,");
} else if (i==2) {
System.out.print("是二位数,");
} else if (i==3) {
System.out.print("是三位数,");
} else if (i==4) {
System.out.print("是四位数,");
} else if (i==5) {
System.out.print("是五位数,");
}
System.out.print( "按逆序输出是:" );
for(int j=0;j<i;j++){
System.out.print(a[j]);
}
}
}
【运行结果】
10000
是五位数,按逆序输出是:00001