我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

c语言递归函数求前20,c语言用递归函数求1到100的和

初学C语言菜鸟求助:计算斐波那契数列的前20项(要求用递归法)

/*以下内容是在VC6.0环境下编译运行成功的,现在一般学习C语言均使用该环境*/

专注于为中小企业提供成都网站制作、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业庐山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

#include stdafx.h

int Fibonacci(int n)

{ int m;

if(n==1||n==2)

m=1;

else

m=Fibonacci(n-1)+Fibonacci(n-2);//递归调用

return m;

}

int main(int argc, char* argv[])

{

int k;

for(k=1;k=20;k++)

{

printf(" %-10d",Fibonacci(k)); //数字左对齐效果,可以查看书本关于printf函数的输出格式

if(k%4==0)printf("\n"); //每行显示四个数字,可视化效果好些

}

return 0;

}

c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和

C语言源程序如下:

#includestdio.h

int main()

{

int array[100]={1,1};//斐波那契数列前两个元素均为0

int i=0;//循环变量

int n=20;//数列需要求的个数

int sum = 0;//和变量

for(i=2;in+1;i++)//按递推原理依次求出后续元素

{

array[i]=array[i-1]+array[i-2];//数列原理

}

printf("arr[1]-arr[%d] = ", n);//提示输出数列元素

for (i = 0; i n; i++)//遍历数列

{

printf("%d ",array[i]);//输出arr[1]-arr[n]元素内容

sum += array[i];//顺便进行求和

}

printf("\n%d ", sum);//输出求和结果

return 0;

}

程序运行结果如下:

扩展资料:

利用递归原理进行求斐波那契数列的求解和求前n项和:

#includestdio.h

int fibonacci(int n) //递归函数

if (n == 0 || n == 1)  

return 1;    

if (n 1)        

return fibonacci(n - 1) + fibonacci(n - 2); 

int main() 

int i = 0;    

for (i = 0; i 30; i++) 

printf("fibonacci(%d) = %d\n", i, fibonacci(i)); 

}    

return 0; 

}

在C语言中如何用递归编写斐波纳契前20项?

asd(n)=asd(n-1)+asd(n-2)//到这里计算机不知道指为多少,但由定义继续往下算

=asd(n-2)+asd(n-3)+asd(n-3)+asd(n-4)//继续往下算

=asd(0)+……+asd(1)+……

算出结果

C语言:采用递归调用函数方法计算Fibonacci数列的前20项

#includelt;iostream.hgt;

#includelt;iomanip.hgt;

long fibonacci(long,int);

void main(void)

{

int n;

coutlt;lt;"please input\"n\"";

cingt;gt;n;

coutlt;lt;endl;

if(fibonacci(n,1)==-1)coutlt;lt;"error message:nlt;0";

}

long fibonacci(long number,int out)

{

if(numberlt;0)

return-1;//return error message

else if(number==0)

return 0;

else if(number==1)

{

if(out)

coutlt;lt;numberlt;lt;setw(5);

return 1;

}

else

{

long lVal;

if(out)

lVal=fibonacci(number-2,0)+fibonacci(number-1,1);

else

lVal=fibonacci(number-2,0)+fibonacci(number-1,0);

if(out)

coutlt;lt;lVallt;lt;setw(5);

return lVal;

}

}

扩展资料:

斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,

像这样的:1、1、2、3、5、8、13、21、34、55......

今天,用四种方式来进行实现:

1.递归

int Fibon1(int n)

{

if(n==1||n==2)

{

return 1;

}

else

{

return Fibon1(n-1)+Fibon1(n-2);

}

}

int main()

{

int n=0;

int ret=0;

scanf("%d",n);

ret=Fibon1(n);

printf("ret=%d",ret);

return 0;

}

2.非递归

int Fibno2(int n)

{

int num1=1;

int num2=1;

int tmp=0;

int i=0;

if(nlt;3)

{

return 1;

}

else

{

for(i=0;igt;n-3;i++)

{

tmp=num1+num2;

num1=num2;

num2=tmp;

}

return tmp;

}

}

3.数组

public int Fibno3(int n)

{

Listlt;intgt;list=new Listlt;intgt;();

list.fib(1);

list.fib(1);

int count=list.Count;

while(countlt;n)

{

list.fib(list[count-2]+list[count-1]);

count=list.Count;

}

return list[count-1];

}

4.队列

public int Fibno4(int n)

{

Queuelt;intgt;queue=new Queuelt;intgt;();

queue.Enqueue(1);

queue.Enqueue(1);

for(int i=0;ilt;=n-2;i++)

{

queue.Enqueue(queue.AsQueryable().First()+queue.AsQueryable().Last());

queue.Dequeue();

}

return queue.Peek();

}

参考资料:

百度百科——斐波那契数列

用c语言怎么写这个程序,分数序列2/1,3/2,5/3,8/5…,求出这个数列的前20项之和?

此数列从第二项起,后一项的分子是前一项分子分母之和,分母是前一项分子。利用这一规律自定义一个递归函数求和。求和时将分子强制为double型以获得浮点商。代码如下:

#include "stdio.h"

double myfun(int m,int d,int n){//自定义前n项求和函数

if(n1)//若n1则递归调用

return (double)m/d+myfun(m+d,m,n-1);

return (double)m/d;//n==20时返回第20项m/d的浮点值

}

int main(int argc,char *argv[]){

printf("%f\n",myfun(2,1,20));//用第一项分子分母为2/1调用

return 0;

}

运行结果如下图:

c语言题:用递归法求20个阶乘

#include "stdio.h"

double jc(double n)

{

if(n1)

return jc(n-1)*n;

else

return 1;

}

int main()

{

double i;

for(i=0;i=20;i++)

printf("%.0lf\n",jc(i));

}

再给一个完全用递归的:

#include "stdio.h"

double jc(double m,double n)

{

if(m1)

{

if(n1)

{

if(m==n)

printf("%.0lf\n",jc(m,n-1)*n);

else

return jc(m,n-1)*n;

}

else

{

if(m0)

jc(m-1,m-1);

return 1;

}

}

else

{

printf("1\n");

}

}

int main()

{

double s[20],m;

m=20;

jc(m,m);

}


本文题目:c语言递归函数求前20,c语言用递归函数求1到100的和
网站链接:http://shouzuofang.com/article/phghei.html

其他资讯