某级数的前两项A1=1,A2=1,以后各项具有如下关系: An=An-2+2An-1 下列程序的功能是:要求依次对于
某级数的前两项A1=1,A2=1,以后各项具有如下关系:
An=An-2+2An-1
下列程序的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn<M且Sn+1≥M,这里Sn=A1+A2+…+An”并依次把n值存入数组单元b[0],b[l],b[2]中,请编jsValue()函数来实现此功能,最后调用函数writeDat()把数组b的值输出到out48.dat文件中。
注意:部分源程序已给出。
请勿改动主函数main()和输出函数writeDat()的内容。
试题程序:
include
int b[3];
jsValue()
{
}
main()
{
jsValue( );
printf("M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n",
b[0],b[1],b[2]);
writeDat();
}
writeDat ( )
{
FILE *fp;
fp=fopen("out48.dat", "w");
fprintf(fp, "%d\n%d\n%d\n",b[0] ,b[1] ,b[2]);
fclose (fp);
}
jsValue( ) { int a1=1,a2=1,n=1,an; int sum0,sum; sum0=a1+a2; while(1) { an=a1+a2*2; /*求下一个级数*/ sum=sum0+an; /*求级数和*/ a1=a2; /*将a2赋给a1*/ a2=an; /*将an赋给a2*/ n++; if(sum0100 && sum>=100) /*如果满足Sn100且sn+1=100*/ b[0]=n; /*则将n存入数组单元b[0]中*/ if(sum01000 && sum>=1000) /*如果满足Sn1000且Sn+l>=1000*/ b[1]=n; /*则将n存入数组单元b[1]中*/ if(sum010000 && sum>=10000) /*如果满足Sn10000且sn+1>=10000*/ { b[2]=n; /*则将n存入数组单元b[2]中*/ break; /*并强行退出循环*/ } sum0=sum; /*将sum赋给sum0,为下一次循环的求和作准备*/ } } 解析:本题考查的知识点如下:
(1)利用循环和判断求级数。
(2)循环的强行退出。
(3)多个条件的“与”运算。
由级数的表达式可以看出,级数中的各项可以由循环依次求得。当级数的和达到要求的条件时就可以退出循环结构。因为退出循环的两个条件SnM,Sn+1M要同时满足,所以两条件之间要用到“与”运算。这里使用break退出整个循环结构。
TreeSet和HashSet的区别?最近学到数据结构,对于二者感到迷惑,只知道前者有序,后者无序, 其他 2020-03-30 …
物理题目帆船靠风运动,顺风时船能前进,为什么帆船逆风也能前进?有谁知道啊,速度啊,明天就要答案了帮 物理 2020-04-09 …
翻译下列至英文(演讲用,急)因为演讲稿较长,把它分成段落,分次提问,可能前后有些不对,还请谅解.另 英语 2020-05-17 …
英语翻译因为演讲稿较长,把它分成段落,分次提问,可能前后有些不对,还请谅解.另外,请各位大侠翻译得 英语 2020-05-17 …
某产品的加工需要经过5道工序(1)如果甲在乙前,乙在丙前,则有多少种排列加工顺序的方法?(2)如果 数学 2020-05-17 …
英语翻译因为演讲稿较长,把它分成段落,分次提问,可能前后有些不对,还请谅解.另外,请各位大侠翻译得 英语 2020-06-04 …
英语翻译因为演讲稿较长,把它分成段落,分次提问,可能前后有些不对,还请谅解.另外,请各位大侠翻译得 英语 2020-06-04 …
某建筑工程队计划六月份完成某段下水道的检修工作,在修检了20天后,接到市气象局通知,今年汛期可能前 数学 2020-06-21 …
一天.马哈巴先生提着一大桶油穿过沙特阿拉伯一个结冰的湖,走着走着不小心摔倒了,桶里的5加仑油全都泼 物理 2020-07-06 …
23.一棵前序序列为1,2,3,4的二叉树,其中序序列不可能是().1.一棵前序序列为1,2,3, 其他 2020-07-08 …