- 注册时间
- 2006-11-7
- 最后登录
- 2019-5-19
⑧专业
我就是一个茶几...
- 积分
- 48325
|
发表于 2008-2-10 20:17:46
|
显示全部楼层
破程序写的真烂。。一点可读性都没有。。。
if (n%(i+1)==i) /*符合要求就继续*/
这句判断,就是判断(n/2+1/2)或(n/3+1/3)等。。是不是整数
假设说n/(i+1)=s余i,那么正常的商应该是s+i/(i+1),s是整数部分,i/(i+1)是小数部分
那么s+i/(i+1)+1/(i+1)就等于s+1,也就是小数部分不存在了,也就是整数
n=n*i/(i+1);
这句求的是剩余的鱼....
要注意的是,由于而整除的关系,n*i/(i+1)并不等于n-n/(i+1)...
而是等于n-n/(i+1)-1
還有按牠這樣的話,m-2, 那就是求得 n=m=61, 將n=61代主下面的似乎第二次循環就不符合了,怎麼這樣呢?
至于这里,要解释一下循环...
循环体结束一次后,循环变量做步长变化,这里是+=2
而判断是否循环则是在循环开头判断
所以当m=59时,n=59,经过循环体后,n=11,循环结束
然后m步长+2,变成61,再去循环头判断是否循环,n=11,不进行循环,跳出循环,此时m为61
然后printf 61-2=59 |
|