|
一道C语言的题,帮一帮我吧!
|
类别:
程序设计
时间:
2007.03.15
|
佐依贝儿
|
一道C语言的题,帮一帮我吧!
当输入的数据为2,5时,下列程序输出结果为() #include<stdio.h> # define max 100 { int f[max],i,j,k,m; scanf("%d,%d",&k,&m); for(i=0;i<=m;i++) f[i]=0; f[k-1]=1; for(i=k;i<=m;i++) for(j=i-k;j<=i-1;j++) f[i]+=f[j]; printf("%d%10d%10d\n",k,m,f[m]); } 非常感谢
|
悟性居士
|
LZ你有工夫来这里发帖子问还不如自己运行一下 瞎猜一个:0 1 3 7 14 26
|
佐依贝儿
|
我不是要答案,我希望得到详细的解释,这个是书面题,所以理解很重要,麻烦大伙了~~
|
baiytfp
|
for(i=0;i<=m;i++) f[i]=0;这句之后f[0]到f[5]的值都为0; f[k-1]=1;这句后f[1]=1; 至于这一块 {for(i=k;i<=m;i++) for(j=i-k;j<=i-1;j++) f[i]+=f[j];} 里面的意思是 f 数组的第 i 个数的值为前面的两个数之和。 明了吧??
|
约定之日
|
我看到楼主的很多帖子都是求解的.书中也有详解. 难道是理解能力差? 如果都是一味要人家帮的话是没什么多大进步的! 最重要的还是要自己去理解...自己去摸索里面的细节 想到不能想出来时再来求解......这样会对你的帮助比较大点..... 进步也会很快! 还有就是,做题的时候加点注译 这题就更简单了.. 再来就是,我不是批评你的意思,只是想指引一下正路! [此贴子已经被作者于2007-3-13 16:07:27编辑过]
|
Qdieyou
|
对,不要什么问题都问别人,尝试着自己去找答案,哪怕是百度也好
|
jonc
|
好学之心人皆有之! 答案是2 5 5 转化为java代码如下: public class class1 { public static void main(String[] args) { final int MAX=100; int i,j,k,m; k=2; m=5; int q=1; int f[]=new int[MAX]; for(i=0;i<=m;i++) f[i]=0; f[k-1]=1; for(i=k;i<=m;i++,q++) { System.out .println("第"+q+"次"); for(j=i-k;j<=i-1;j++) { f[i]+=f[j]; System.out.println(" i= "+i+" j= "+j); System.out.println(f[0]+" "+f[1]+" "+f[2]+" "+f[3]+" "+f[4]+" "+f[5]); } } System.out.println("FINALp:"+k+" "+m+" "+f[m]); } }
|
上一篇:JAVA用什么编写? 下一篇:[求救] 有三道C++题目请教高手
|