c语言求前n项和不用循环,C语言用递归+循环迭代2种方法求斐波拉契数列(前n项和,第n项值,打印前n项)...

这篇博客介绍了如何使用C语言通过迭代和递归两种方法来计算斐波那契数列的指定项及求和。文章提供了详细代码示例,包括输入整数N后输出第N项、打印前N项以及计算前N项之和的功能。读者可以了解到这两种方法的实现细节和运行效果。
摘要由CSDN通过智能技术生成

什麽是斐波拉契数列?

斐波拉契数列特色是第N项老是等于前两项之和;linux

通常是从第一项和第二项都是1开始:例如code

1 1 2 3 5 8 13 21 34 55 59....................

求解斐波拉契数列一直是C语言基础的常见问题,通常题目大概分为三种:

问题1.编写一个程序,用户输入整数 N,程序输出第 N 项斐波那契数;blog

如输入N=7 ,运行结果是:13递归

问题2.编写一个程序,用户输入整数 N,程序打印前 N 项斐波那契数;ci

如输入N=7 ,运行结果是:1 1 2 3 5 8 13io

问题3.编写一个程序,用户输入整数 N,程序输出前 N 项斐波那契数之和;class

如输入N=7 ,运行结果是:1 + 1 + 2 + 3 + 5 + 8 + 13 = 33基础

这三类问题其实解法都同样,求解方法有两种,迭代法(又称循环法)和递归法;

方法一:迭代法(又称循环法)*************************

#include

//迭代法(循环法)

int main()

{

int n = 0,n_dis=0,total=0;

int ret = 0;

int bef1 = 1;

int bef2 = 0;

printf("输入要求的斐波拉契数列项数:");

scanf("%d", &n);

n_dis = n;

while(n>0)

{

n = n - 1;

bef2 = bef1;

bef1 = ret;

ret = bef1 + bef2;

total = total + ret;//计算前n项和

printf("%d\n", ret);//若是不须要打印前n项每一个数,则删除这句

}

printf("第%d项 = %d\n",n_dis,ret);

printf("前%d项和 = %d\n",n_dis,total);

return 0;

}

linux下运行结果:循环

9d51e2457a0de4dca477f27f2c648ae6.png

方法一:递归法*************************

#include

//递归法

int fibonacci(int n)

{

if(n<=0)

{

return 0;

}

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

{

return 1;

}

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

}

int main(void)

{

int n = 0,total=0;;

int i = 1;

int ret = 0;

printf("输入要求的斐波拉契数列项数:");

scanf("%d", &n);

for(i=1;i<=n;i++)

{

ret = fibonacci(i);

total = total + ret;//计算前n项和

printf("%d\n",ret);//若是不须要打印前n项每一个数,则删除这句

}

printf("第%d项 = %d\n",n,ret);

printf("前%d项和 = %d\n",n,total);

return 0;

}

linux下运行结果:程序

fd35609a44a568049394e0e69c840f9b.png

【问题描述】 【问题描述】编写函数f,功能是用递归方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个整数n,调用函数f斐波那契数列的第n,并在主函数中输出斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个整数n,调用函数f斐波那契数列的第n,并在主函数中输出斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个整数n,调用函数f斐波那契数列的第n,并在主函数中输出斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归方法斐波那契数列的第n,函数原型为 int f(int n),在主函数中输入一个整数n,调用函数f斐波那契数列的第n,并在主函数中输出斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值