Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println(n + "的阶乘为:" + fac(n));
}
}
【程序23】 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
直接求解:
public class Demo23 {
public static void main(String[] args) {
int n = 10;
for (int i = 0; i < 4; i++) {
n = n + 2;
}
System.out.println("第五个人" + n + "岁");
}
}
递归求解:
public class Demo23 {
public static int getAge(int n) {
if (n == 1) {
return 10;
}
return 2 + getAge(n - 1);
}
public static void main(String[] args) {
System.out.println("第五
个的年龄为" + getAge(5));
}
}
【程序24】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
本题原方法:
import java.util.Scanner;
public class Demo24 {
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高等教育JAVA经典算法50题(11)全文阅读和word下载服务。