解题思路:
根据斐波纳的特点,其第1、2项均为1,从第三个数开始,该数是数列中前两个数的和的。将f1、f2初始值设为数列的头两个数,然后再根据其特点,循环输出。通过不大于40的N数控制循环体,输出即可。
注意事项:
看清题意,是输出N个斐波数而不是输出N以内的斐波数。
参考代码:
#include<stdio.h> int main() { int N; int f1=0; //假设为头列第一个数,初始化为0; int f2=1;//假设为头列第二个数,初始化为1; int f3=0;//设为fib数,即为第三个数; scanf("%d",&N);//输入要输出斐波数的个数 if(N<=40)//不大于40个数。 {while(N--)//控制输出的斐波数的个数; { f1=f2;//假设头列的第一个数与第二个数相等 f2=f3;//第二个数与第三个数相等; f3=f1+f2;//第三个数又是第一个数与第二个数的和,即为斐波数; printf("%d ",f3);//符合循环条件的斐波输出; }printf("\n");} return 0; }
0.0分
7 人评分
#include<stdio.h> int main(){ int N; scanf("%d",&N); int s[40]; int i; s[0]=1; s[1]=1; if(N==1) printf("1"); else if(N==2) printf("1 1"); else{ printf("%d %d ",s[0],s[1]); for(i=2;i<N;i++){ s[i]=s[i-1]+s[i-2]; printf("%d ",s[i]); } } return 0; } 为什么不对
#include<stdio.h> int main() { int n; scanf("%d",&n); int a[40]; for(int i=0;i<n;i++) { if(i==0||i==1) { a[i]=1; } else a[i]=a[i-1]+a[i-2]; printf("%d ",a[i]); } return 0; }
A+B for Input-Output Practice (II) (C语言代码)浏览:619 |
去掉双斜杠注释 (C语言代码)浏览:1958 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:808 |
母牛的故事 (C语言代码)浏览:1740 |
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:505 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:561 |
【蟠桃记】 (C语言代码)浏览:703 |
字符串问题 (C语言代码)浏览:1621 |
WU-蓝桥杯算法提高VIP-交换Easy (C++代码)浏览:1185 |
WU-图形输出 (C++代码)浏览:834 |