请编写函数countValue()其功能是;计算出自然数SIX和NINE,他们满足的条件是SIX+SIX+SIX=NINE+NINE+NINE的个数,以及满足此条件的所有SIX与NINE的和sum。最后调用函数WriteData()把结果count和sum

admin2012-07-20  60

问题 请编写函数countValue()其功能是;计算出自然数SIX和NINE,他们满足的条件是SIX+SIX+SIX=NINE+NINE+NINE的个数,以及满足此条件的所有SIX与NINE的和sum。最后调用函数WriteData()把结果count和sum输出到文件OUT.DAT中。其中,S,I,X,N,E各代表一个十进制数。
注意;部分源程序已给出。
请勿改动主函数main()和写函数WriteData()的内容。
试题程序;
#include
int count,sum;
void WriteData();
void countValue()
{
}
void main()
(
  count=sum=0;
  countValue();
  printf(“count=%d\n",count);
  printf("SIX+NINE=%d\n",sum);
  writeData();
}
void WriteData()
{
  FILE*fp;
  fp=fopen("OUT.DAT","w");
  fprintf(fp,"count=%d\nsum=%d\n",
  count,sum);
  fclose(fp);
}

选项

答案  void countValue() { int S,I,X,N,E,SIX,NINE; for(S=0;S<=9;S++) //将S,I,X,N,E进行循环穷举 for(I=0;I<=9;I++) for(X=0;X<=9;X++) for(N=0;N<=9;N++) for(E=0;E<=9;E++) { SIX=100*S+10*I+X; //SIX的计算方法 NINE=1000*N+100*I+10*N+E; //NINE的计算方法 if(3*SIX==2*NINE) { count++; sum+=(SIX+NINE); } } }

解析 本题主要考查分解数据的重组以及用穷举法解方程的方法。本题用穷举法(即将S,I,X,N,E分别从小到大代入验证)即可很快得到所有的值。解该题的关键是知道如何由各数位上的数字得到它们所组成的数字,解决这一问题的方法是将各数位上的数字乘以相应的权值再求和即可,即可这样编程;SIX=100*S+10*I+X;NINE=1000*N+100*I+10*N+E。
转载请注明原文地址:https://jikaoti.com/ti/Z8R7FFFM
0

最新回复(0)