• 2022-07-25
    有5个人,第5个人比第4个人大2岁,第4个人比第3个人大2岁,第3个人比第2个人大2岁,第2个人比第1个人大2岁,第1个人说他10岁。求第5个人多少岁。如果age(n)为第n个人的岁数,此函数可如下定义:
    A: 当n=1,age(n)=10当n>1时,age(n)=age(n-1)+2
    B: 当n>=1,age(n)=age(n-1)+2
    C: 当n=5,age(n)=10当n>=1,age(n)=age(n+1)-2
    D: 当n=5,age(n)=2当n>=1,age(n)=age(n-1)+2
  • A

    举一反三

    内容

    • 0

      07440011:有五个人坐在一起,问第五个人多少岁?他说比第四个人大2岁。问第四个人多少岁?他说比第三个人大2岁。问第三个人多少岁?他说比第二个人大2岁。问第二个人多少岁?他说比第一个人大2岁。最后问第一个人多少岁?他说10岁。请问第五个人多少岁?根据分析,有如下公式:age(n)=10 (n=1)age(n-1)+2 (n>1)程序如下,请填空:age(int n){ int c; if(n==1) c=10; else c=______; /*递归调用*/ return c;}int main() { printf("%d", age(5)); return 0;}

    • 1

      题目:有5个人坐在一起,问第五个人多少岁?他说比第四个人大两岁。问第四个人岁数,他说比第三个人大两岁。问第三个人,又说比第二个人大两岁。问第二个人,说比第二个人大两岁。最后问第一个,他说是十岁。请问第五个人多大?思路:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。'''def age(n): if n == 1: c = 10 else: ______________ return cprint (age(5)) A: c = age(n-1) + 2 B: c = age(n-1) + 1 C: c = age(n-1) -1 D: c = age(n) + 2

    • 2

      有5 个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。问第 4个学生岁数,他说比第3个学生大2岁。问第3个学生,又说比第2个学生大2岁。问第 2个学生,说比第1个学生大2岁。最后问第1个学生,他说是10岁。请问第5个学生 多大。 解题思路:要求第5个学生的年龄,就必须先知道第4个学生的年龄,而第4个学生的 年龄也不知道,要求第4个学生的年龄必须先知道第3个学生的年龄,而第3个学生的年龄 又取决于第2个学生的年龄,第2个学生的年龄取决于第1个学生的年龄。而且每一个学 生的年龄都比其前1个学生的年龄大2。即: age(5) = age(4) +2 age(4) = age(3) 十2 age(3) = age(2)+ 2 age(2) = age(1) +2 age(1)= 10 可以用数学公式表述如下: age(n) 10 (n= 1) age(n) = age(n- 1)+2 (n> 1)

    • 3

      07440011:有五个人坐在一起,问第五个人多少岁?他说比第四个人大2岁。问第四个人多少岁?他说比第三个人大2岁。问第三个人多少岁?他说比第二个人大2岁。问第二个人多少岁?他说比第一个人大2岁。最后问第一个人多少岁?他说10岁。请问第五个人多少岁?根据分析,有如下公式:age(n)=10 (n=1)age(n-1)+2 (n>1)程序如下,请填空:age(int n){ int c; if(n==1) c=10; else c=______; /*递归调用*/ return c;}int main() { printf("%d", age(5)); return 0;} A:

    • 4

      程序填充题, 用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大两岁,求第五位学生的年龄。递归公式如下: age(1)=10 , age(n)=age(n-1)+2 ( n>1) #include age(int n) { int c; if(n==1)c=10; else c= 1 ; return(c); } main() {int n=5; printf( “ age: %d\n ” , 2 ); }