|
发表于 2020-9-26 16:11:25
|
显示全部楼层
- //求斐波那契数列前N项的和
- #include<stdio.h>
- #include <math.h>
- void main()
- {
- int i = 1,j = 1,k,n; // n 为需要计算的前几项之和
- int f1 = 1 ;
- int f2 = 1 ;
- while(j<4)
- {
- j++;
- while(1)
- {
- scanf("%d",&n);
- if(n>0) break;
- printf("项数不能为负数,请重新输入!\n");
- }
- while(1)
- {
- if(n>0) break;
- scanf("%d",&n);
- if(floor(n) != ceil(n))
- printf("项数只能为整数,请重新输入!\n");
- break;
- }
- break;
- }
- if (j==3)
- {
- printf("你输入错误超过三次,请想清楚了再试\n");
- goto loop; // 输错三次,无条件退出程序
- }
- if(n % 2 != 0)
- {
- n = (n - 1) / 2;
- k = 1;
- }
- else
- {
- n = n / 2;
- k = 0;
- }
- for(;i < n;i++)
- {
- f1 = f1 + f2 ; // 计算出下一个数,并存放于 f1 中
- f2 = f2 + f1 ; // 计算出下两个数,并存放于 f2 中
- }
- if(k == 1)
- {
- f1 = f1 + f2 ;
- printf("%d\n",f1);
- }
- else
- printf("%d\n",f2);
- loop : printf("\n");
- }
复制代码 |
|