题目详情
本题要求编写程序,利用数组计算菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证计算结果在长整型范围内。
Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如::1,1,2,3,5,8,13,...。
文章目录
一、输入样例
二、输出样例
三、代码展示
四、思路体现
五、难点记录
一、输入样例
输入正整数n(1<=n<=46)。
7
二、输出样例
输出前N个Fibonacci数,每个数占11位,每行输出5个。
如果最后一行输出的个数不到5个,也需要换行。
如果输入的N不在有效范围内,则输出"Invalid."。
1 1 2 3 5
8 13
三、代码展示
1)while循环:
#include
int main()
{
long int a[46]={1,1}; //定义数组
int n,i=2;
scanf("%d",&n); //输入n
if(n>=1&&n<=46) //对n的大小进行规范
{
if(n==1)printf("%11d",a[0]); //当n等于1时
else if(n==2)printf("%11d%11d",a[0],a[1]); //当n等于2时
else //当大于2时
{
printf("%11d%11d",a[0],a[1]); //首先输出前两个数
while(i
2)for循环:
#include
int main()
{
int fib[46]={1,1};
int i,n;
scanf("%11d",&n);
if(n>=1&&n<=46){
if(n==1)printf("%11d\n",fib[0]);
else if(n==2)printf("%11d%11d\n",fib[0],fib[1]);
else{
printf("%11d%11d ",fib[0],fib[1]);
for(i=2;i
(注:这两段代码没有经过pta测试,可能会有误差)
四、思路体现
斐波那契数列中从第三个数开始,每个数都是前两个数之和,因此我们首先将前两个数输入进数组,然后利用循环,从第三个数开始计算;需要注意的是,输出时每个数站11位,且每五个数要换行,且若是最后一行输出的数字不满足五个数也需要换行。
五、难点记录
没有搞清楚斐波那契数列的特性,便盲目开始写代码;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)