求救一道C语言的题目,求详细解答过程!非常感谢!!
#include<stdio.h>voidmain(){inti;intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];f...
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
答案我知道,我希望能看到详细的解答过程~非常感谢!! 展开
void main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
答案我知道,我希望能看到详细的解答过程~非常感谢!! 展开
展开全部
1.int i;int f[20]={1,1};
程序定义了一个变量i和一个长度为20的整型一维数组并把数组的前两个值均初始化为1后面初始化为0
2.for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1];
在i从2到20每次自增1的循环过程中,其实就是在给数组第3个数(数组下标从0开始,所以循环从2开始)到第20个数赋值的过程。数组从第3个数开始,每一个数等于其前两个数的和。
3.for(i=0;i<20;i++)
在i从0到20每次自增1的循环过程中,打印数组。%12表示的是每次占12个字符的位置,if(i%5==0)printf("\n");表示当i自增到5的整数倍时换行,以便可以打出每5个数一行的效果。
4.最后再打印一个换行。
程序定义了一个变量i和一个长度为20的整型一维数组并把数组的前两个值均初始化为1后面初始化为0
2.for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1];
在i从2到20每次自增1的循环过程中,其实就是在给数组第3个数(数组下标从0开始,所以循环从2开始)到第20个数赋值的过程。数组从第3个数开始,每一个数等于其前两个数的和。
3.for(i=0;i<20;i++)
在i从0到20每次自增1的循环过程中,打印数组。%12表示的是每次占12个字符的位置,if(i%5==0)printf("\n");表示当i自增到5的整数倍时换行,以便可以打出每5个数一行的效果。
4.最后再打印一个换行。
展开全部
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
这个步骤是计算菲波拉契数列。
斐波拉契(Fibonacci)数列来源于兔子问题,它有一个递推关系,
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2),其中n>=2
{f(n)}即为斐波拉契数列。
for(i=0;i<20;i++)
{
//当i能被5整除时,打印换行符。即输入每5个值就换一行
if(i%5==0)printf("\n");
//%12d指按12位整形数输出,不足12位则右对齐。
printf("%12d",f[i]);
}
//以上则是输出了一个5*4的矩阵。最后打印一个换行结束
printf("\n");
}
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
这个步骤是计算菲波拉契数列。
斐波拉契(Fibonacci)数列来源于兔子问题,它有一个递推关系,
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2),其中n>=2
{f(n)}即为斐波拉契数列。
for(i=0;i<20;i++)
{
//当i能被5整除时,打印换行符。即输入每5个值就换一行
if(i%5==0)printf("\n");
//%12d指按12位整形数输出,不足12位则右对齐。
printf("%12d",f[i]);
}
//以上则是输出了一个5*4的矩阵。最后打印一个换行结束
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
此函数是斐波那契数:
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
斐波那契数f(n):当n=0和n=1是,f(n)=1;
n>=2时:f(n)=f(n-2)+f(n-1)
此语句:int f[20]={1,1};是初始化,把n=0和n=1的f(n)初始化1;
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
这个循环就是递归调用,实现“n>=2时:f(n)=f(n-2)+f(n-1)”
此语句: if(i%5==0)printf("\n");
是输出控制,输出5个后就换行。
此语句:printf("%12d",f[i]);对输出的数进行控制。
此语句:printf("\n");对于for循环输出完后换行,在此处用处不大。
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
斐波那契数f(n):当n=0和n=1是,f(n)=1;
n>=2时:f(n)=f(n-2)+f(n-1)
此语句:int f[20]={1,1};是初始化,把n=0和n=1的f(n)初始化1;
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
这个循环就是递归调用,实现“n>=2时:f(n)=f(n-2)+f(n-1)”
此语句: if(i%5==0)printf("\n");
是输出控制,输出5个后就换行。
此语句:printf("%12d",f[i]);对输出的数进行控制。
此语句:printf("\n");对于for循环输出完后换行,在此处用处不大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解释在程序的注释中:
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};//定义数组中前两个值
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; //斐波那契数列
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");//每行输出5个数,然后换行
printf("%12d",f[i]);
}
printf("\n");
}
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};//定义数组中前两个值
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; //斐波那契数列
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");//每行输出5个数,然后换行
printf("%12d",f[i]);
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];//很经典的一个数学问题,后一个数等于前两个数的和
//f[20]最开始是{1,1,0,0,0,……},后面的都是0
//从f[2]开始运算,即第三个数开始,依次后一个数等于前两个数之和
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");//每行输出5个数据
printf("%12d",f[i]);
}
printf("\n");
}
void main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];//很经典的一个数学问题,后一个数等于前两个数的和
//f[20]最开始是{1,1,0,0,0,……},后面的都是0
//从f[2]开始运算,即第三个数开始,依次后一个数等于前两个数之和
for(i=0;i<20;i++)
{
if(i%5==0)printf("\n");//每行输出5个数据
printf("%12d",f[i]);
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询