在做三级上机的时候出的问题。。。
因为和答案想法不是很一样参考价值不大。。
下面是题目和程序。。。各位大大帮忙看哈~~~谢了
某级数的前两项A1=1,A2=1,以后各项具有如下关系:
An=An-2+2An-1(注:n-2与n-1为下标)
下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn<M且Sn+1>=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能, 最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。
请勿改动主函数main()和写函数writeDat()的内容。
#include<stdio.h>
int b[3];
void writeDat();
void jsValue( )
{
int i;
int a[1000000],s[100000];
a[0]=1;
a[1]=1;
for(i=2;i<100000;i++)
a[i]=a[i-2]+2*a[i-1];
for(i=0;i<100000;i++)
{s[i]=s[i-1]+s[i];
if(s[i]<100&&s[i+1]>=100)
b[0]=i;
if(s[i]<1000&&s[i+1]>=1000)
b[1]=i;
if(s[i]<10000&&s[i+1]>=10000)
b[2]=i;
}
}
void main()
{
jsValue( );
printf("M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n",b[0],b[1],b[2]);
writeDat();
}
void writeDat()
{
FILE *fp;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n%d\n%d\n",b[0],b[1],b[2]);
fclose(fp);
}
void jsValue( )为我自己编的内容
其他是题目给出的。。。
参考资料:my smart brain, 同时庆祝我c++问题的采纳率终于突破了50% !!