C语言高手进 答好有加分!
问个简单问题,#defineMAX100#include"stdio.h"main(){intf[MAX],i,j,k=2,m=5;for(i=0;i<=m;i++)f[...
问个简单问题,
#define MAX 100
#include"stdio.h"
main()
{
int f[MAX],i,j,k=2,m=5;
for(i=0;i<=m;i++) f[i]=1;f[k-1]=2;
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++) f[i]+=f{j};
printf("%d%5d%5d\n",k,m,f[m]);
}
这个的结果是 2,5,20 对么 给出运行的详细过程, 谢谢了 答好有加分,放心答吧 展开
#define MAX 100
#include"stdio.h"
main()
{
int f[MAX],i,j,k=2,m=5;
for(i=0;i<=m;i++) f[i]=1;f[k-1]=2;
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++) f[i]+=f{j};
printf("%d%5d%5d\n",k,m,f[m]);
}
这个的结果是 2,5,20 对么 给出运行的详细过程, 谢谢了 答好有加分,放心答吧 展开
1个回答
展开全部
int f[MAX],i,j,k=2,m=5;
//循环给出f[i]的值,f[0]到f[m]都是1,f[2-1]=2,也就是f[5]={1,2,1,1,1,1}
for(i=0;i<=m;i++) f[i]=1;f[k-1]=2;
//for(i=2;i<=5;i++) for(j=i-2;j<=i-1;j++) f[i]+=f[j]
//内循环就是j=i-2,现在f[i]=f[i]+f[i-2];j=i-1,现在f[i]=f[i]+f[i-2]+f[i+1]所以,这个 for(j=i-2;j<=i-1;j++)就是
//每个f[i]等于它自己加上他前面两个数之和,数列{1,2,1,1,1,1}这样运算后就是{1,2,4,7,12,20}所以f[m]=f[5]=20
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++) f[i]+=f[j];
printf("%d%5d%5d\n",k,m,f[m]);
//循环给出f[i]的值,f[0]到f[m]都是1,f[2-1]=2,也就是f[5]={1,2,1,1,1,1}
for(i=0;i<=m;i++) f[i]=1;f[k-1]=2;
//for(i=2;i<=5;i++) for(j=i-2;j<=i-1;j++) f[i]+=f[j]
//内循环就是j=i-2,现在f[i]=f[i]+f[i-2];j=i-1,现在f[i]=f[i]+f[i-2]+f[i+1]所以,这个 for(j=i-2;j<=i-1;j++)就是
//每个f[i]等于它自己加上他前面两个数之和,数列{1,2,1,1,1,1}这样运算后就是{1,2,4,7,12,20}所以f[m]=f[5]=20
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++) f[i]+=f[j];
printf("%d%5d%5d\n",k,m,f[m]);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |