**
斐波那契数列求和——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
编译运行: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、a2a2 = t;//flag++;//if (flag % 5 == 0)//原本想每5个输出一行,但是我之前先输出了a1、a2//printf("\n"); //导致第一行有7个,并不能完成每5行输出的任务//放在这里让大家解决,感觉会麻烦一点}printf("\n\n前%d项和为:%d\n", n, sum+2); //注意这里的sum需要加上初值的2return 0;}
运行结果
请输入所需要的项数:71 1 2 3 5 8 13前7项和为:33
写在最后
1、亲自手打,输入编译器进行尝试,尝试更换不同的 n ,观察不同的结果;
2、尝试升级算法,在原有基础上改变部分代码,实现更丰富的功能;
3、欢迎留言,等后期学到了新的技能,尝试用数组、函数等方法实现。