标签:原来 sys bsp 数字 for print 多少 == 结果
题目:
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
代码:
for (int i = 1;; i++) { int num = i; int j; for (j = 0; j <= 5; j++) { if ((num - 1) % 5 != 0) { break; } else { num=(num-1)/5*4; } } if (j == 5) { System.out.println(i); break; } }
正确结果:3121
解题思路:
首先,正着来看,设这堆桃子有 i 个,一共有五只猴子来分,所以写第一个for循环,
第二,桃子的数量时一个变量,而 i 是总数,是定值。所以就有了上面的 int num = i;
第三,每只猴子都能将桃子分成五份多一个,所以一开始有桃子数i=num个。只有当(num-1)/5=0时符合题意,每分一次,数量就变成num=num-1/5*4。
第四,只有当 j,也就是猴子数正好等于5的时候可以分出来的数字,才是正确的桃子数。
标签:原来 sys bsp 数字 for print 多少 == 结果
原文地址:http://www.cnblogs.com/hr-l01-xr/p/7222883.html