【程序23】 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。 public class Prog23{ public static void main(String[] args){ System.out.println(getAge(5,2)); } //求第m位同志的年龄 private static int getAge(int m,int n){ if(m==1) return 10; else return getAge(m-1,n)+n; } } |
【程序24】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 public class Prog24{ public static void main(String[] args){ int n = Integer.parseInt(args[0]); int i = 0; int[] a = new int[5]; do{ a = n%10; n /= 10; ++i; }while(n!=0); System.out.print("这是一个"+i+"位数,从个位起,各位数字依次为:"); for(int j=0;j<i;j++) System.out.print(a[j]+" "); } } |
|