1. 用函数嵌套求1*1+2*2+3*3+…+n*n的值,n由键盘输入。
#include <stdio.h>
int sum(int n);
int pingfang(int k);
void main()
{
    int result,n;
    printf("input n:");
    scanf("%d",&n);
    result=sum(n);
    printf("sum=%d\n",result);
}
int sum(int n)
{
    int i,s=0;
    for(i=1;i<=n;i++)
        s+=pingfang(i);
    return s;
}
int pingfang(int k)
{
    return k*k;
}
2.有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁,问第3个人,又说比第2个人大2岁。问第2个人,他说比第1个人大2岁。最后问第1个人,他说他10岁,请问第5个人的年龄。
分析:
age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10
递归公式如下:
              10              (n=1)
age(n)=
                age(n-1)+2    (n>1)
程序如下:
age( int n)
{
int c;
  if(n==1) c=10;
  else c= age(n-1)+2;
  return c;
}
main()
{
printf(“%d”, age(5));
}
3. 调用递归函数输出Fibonacci数列前N项
编程递归函数Fibonacci数列即:1 1 2 3 5 8 13 21……
#include <stdio.h>
int fib(int n);
void main()
{
    int n,r,i;
    printf("input n:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        r=fib(i);
        printf(" %d\n",r);
    }
}
int fib(int n)
{
    if(n==0||n==1)
        return 1;
    else
        return fib(n-1)+fib(n-2);
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。