以下是引用lqcheng在2007-10-27 8:40:33的发言:
楼主亲自输入试试。我的结果是2048,当然不对了。m=m-(m/2+1); m/2,若m是奇数(循环几次后有可能),结果就不对了。
楼主亲自输入试试。我的结果是2048,当然不对了。m=m-(m/2+1); m/2,若m是奇数(循环几次后有可能),结果就不对了。
把错误结果代进去后才理解
#include <stdio.h>
#define DAY 10
int main(void)
{
int i,n,m;
for(n=10;n<10000;n+=2)
{
m=n;
for(i=1;i<DAY;i++)
{
m=m-(m/2+1);
if(m%2!=0)break;//只要出现奇数就退出
}
if (m==1&&i==9) //判断最后1个是不是第10天剩下的
{
printf("%d",n);
break;
}
}
getchar ();
}
演算结果正确,不过不知道是不是凑出来的
抵制日货,人人有责!