递归求解f数列,已知f数列定义:
f1=f2=1,fn=f(n-1)+f(n-2)(n>2)
建立f数列的递归函数,求f数列的第n项与前n项之和
这是算法课上的题目,虽然很简单但是也是我自己的一个理解:
代码:
#include <stdio.h>
int F(int n)
{
if(n==1||n==2) //先写递归结束条件
{
return 1;
}
return F(n-1)+F(n-2); //接着写等价关系式
}
int main ()
{
int n,i;
int sum=0;
printf("请输入n的值(n>2):");
scanf("%d",&n);
printf("n=%d时前n项之和为%d\n",n,F(n));
for(i=1;i<=n;i++)
{
printf("当i=%d时:\n",i);
printf("此时F(n)为%d:\n",F(i));
sum=sum+F(i);
printf("当i为%d的前n项之和%d\n\n",i,sum) ;
}
printf("===========*********=========\n");
printf("以下才是正确输出:\n");
printf("当n=%d时\n",n);
printf("f数列的第n项为%d:\n",F(n));
printf("f数列前n项之和为%d\n\n",sum);
return 0;
}
是给自己的一个小小笔记啦