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小时内删除。
发表评论