C语言递归练习?

• 递归练习

有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问 第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个 人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人, 他说是10岁。请问第5个人多大?

(一)用递归法求N的阶乘
(二)设计一个函数用来计算B的n次方

#include <stdio.h>

unsigned long func(unsigned long n)

{

    if(n>1)

        return n*func(n-1);

    return 1UL;

}

int main()

{

    unsigned long n;

    scanf("%lu",&n);

    printf("%lu\n",func(n));

    return 0;

}

#include <stdio.h>

unsigned long func(unsigned long b,int n)

{

    if(n>0)

        return b*func(b,n-1);

    return 1UL;

}

int main()

{

    unsigned long b;

    int n;

    scanf("%lu%d",&b,&n);

    printf("%lu\n",func(b,n));

    return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-02-08
第一题:
有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人, 他说是10岁。请问第5个人多大?
int f(int n){
if(n>1)
return 2+f(n-1);
else
return 10;
}
void main(){
int f(int);
printf("第五个人的年龄是:%d\n",f(5));
}
第二题:
用递归法求N的阶乘
int f(int n){
if(n>1)
return n*f(n-1);
else
return 1;
}
void main(){
int f(int);
int N;
scanf("%d",&N);
printf("%d的阶乘是:%d\n",N,f(N));
}
第三题:
设计一个函数用来计算B的n次方
int f(int B,int n){
if(n>1)
return B*f(n-1);
else
return B;
}
void main(){
int f(int,int);
int B,n;
scanf("%d%d",&B,&n)
printf("%d的%d次方是:%d\n",B,n,f(B,n));
}
第2个回答  2022-02-08

#include <stdio.h>

int howold(int n)

{if(n==1)return 10;

 return howold(n-1)+2;

}

int main()

{ printf("第5个人%d岁\n",howold(5));

  return 0;

}

第3个回答  2022-02-08

#include <stdio.h>

unsigned long func(unsigned long n)

{

    if(n>1)

        return n*func(n-1);

    return 1UL;

}

int main()

{

    unsigned long n;

    scanf("%lu",&n);

    printf("%lu\n",func(n));

    return 0;

}

#include <stdio.h>

unsigned long func(unsigned long b,int n)

{

    if(n>0)

        return b*func(b,n-1);

    return 1UL;

}

int main()

{

    unsigned long b;

    int n;

    scanf("%lu%d",&b,&n);

    printf("%lu\n",func(b,n));

    return 0;

}

相似回答
大家正在搜