身份证扫描多少钱一张:怎样用c语言函数的方法来编程:数列1,1,2,3,5,8……,求第20 项

来源:百度文库 编辑:高考问答 时间:2024/04/28 15:42:05
尽可能用函数的递归的方法做

这不是菲波拉齐吗?
main()
{long int f1,f2;
int i;
fl=1;f2=1;
{print("%12ld %12ld",f1,f2);
if (i%2==0) printf("\n");
f1=f1+f2; f2=f2+t;}
}

高一就学这个的

long fib(int x){
if(x>2)
return(fib(x-1)+fib(x-2));
else
return 1;
}
//x=20就可以了

基本是“斐波拉契数列”最原始的是0,1,1,2,3,……
从第3项后每项的值是前两项的和。
下面用函数的递归调用求第20项的值。
——————————————————————————
#include <stdio.h>
int sn(int n);
int main()
{
int n=20;
printf("s20=%d\n",sn(n));
getch();
return 0;
}
int sn(int n) /*定义的求第n项的函数*/
{
int s;
s=n>2?sn(n-1)+sn(n-2):(n>1?2:1); /*递归调用部分,重点在这*/
return s;
}

#include<stdio.h>
int s[30],sum=2;
void m();
void main()
{m();printf("%d\n",s[sum-1]);
}
void m()
{s[0]=s[1]=1;
s[sum]=s[sum-1]+s[sum-2];
sum++;if(sum<=20)m();
}

#include<stdio.h>
void main()
{ int fun(int ); /*声明调用函数*/
printf("fun(20)=%d\n",fun(20));
getch();
}
int fun(int s) /*定义调用函数 */
{ if(s>2) return(fun(s-1)+fun(s-2));
else if(s==1) return 0;
else if(s==2) return 1;
}