**
斐波那契数列求和——C语言(小白版)
**
题目要求
斐波那契数列 1, 1, 2, 3, 5, 8, 13, 21, 34……不难发现当n>2时,an=an-1+an-2
要求:当屏幕输入n(n>2)时,输出前n项以及前n项的和。
注意!我们不使用递归,也不用数组等等,我们就是学过前三章的小白!那如何通过C语言去解决?
编程软件
Visual Studio 2015
编译运行:Ctrl + F5
快速注释:Ctrl + K再按:Ctrl + C
取消注释:Ctrl + K再按:Ctrl + U
开始编程
//输入n,输入前n项,以及前n项和//
#include <stdio.h>
int main()
{
int n,i,t;
int sum = 0,flag = 0; //flag为换行标记
int a1 = 1, a2 = 1; //前两项先列出来
printf("请输入所需要的项数:");
scanf("%d", &n);
printf("%d %d ", a1, a2);
for (i = 3; i <= n; i++) //从第三项开始
{
t = a1 + a2;
printf("%d ", t);
sum = sum + t;
a1 = a2; //注意这里的写法,赋值,产生新的a1、a2
a2 = t;
//flag++;
//if (flag % 5 == 0) //原本想每5个输出一行,但是我之前先输出了a1、a2
// printf("\n"); //导致第一行有7个,并不能完成每5行输出的任务
//放在这里让大家解决,感觉会麻烦一点
}
printf("\n\n前%d项和为:%d\n", n, sum+2); //注意这里的sum需要加上初值的2
return 0;
}
运行结果
请输入所需要的项数:7
1 1 2 3 5 8 13
前7项和为:33
写在最后
1、亲自手打,输入编译器进行尝试,尝试更换不同的 n ,观察不同的结果;
2、尝试升级算法,在原有基础上改变部分代码,实现更丰富的功能;
3、欢迎留言,等后期学到了新的技能,尝试用数组、函数等方法实现。
版权声明:本文为m0_50923545原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。