📄 题目41sixnine.txt
字号:
题目41:下列程序的功能是:计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt,以及满足此条件所有的SIX与NINE的和SUM。请编写函数countvalue()实现程序的要求,最后调用函数writedat()把结果cnt和sum,输出到文件out15.dat中.其中S,I,X,N,E各代表一个十进制数字。
注意:部分源程序已给出。
请勿改动主函数main()的内容。
--------------------
void countValue() /*标准答案,有问题!!!*/
{int I=100;
while(1)
{if(3*I%2==0&&3*I/2>=1000&&3*I/2<=9999)
{cnt++;sum+=I+3*I/2;I++;}
else I++;
if (I>999||3*I/2>9999) break;
}
}
或者:
注:由于有SIX+SIX+SIX=NINE+NINE可看出SIX的3倍必须大于等于2000(右边是一个四位数字的数可知),因此从666开始循环,再由三个数的和是个偶数(右边为一个数的2倍可知)可循环时步长为2。再由SIX和NINE中有一个共同数字I所以得出第一个if()判断,还有NINE中有一共同数字N所以得出第二个if()判断。*/
void countValue()
{ int i;
for(i=666;i<=999;i=i+2)
if((i/10%10==(3*i/2)/100%10)&&((3*i/2)/1000==(3*i/2)%100/10)) /*以I为准*/
{cnt++;sum+=i+3*i/2;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -