首页 > 代码库 > for循环问题(1)
for循环问题(1)
题目:
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
代码:
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的时候可以分出来的数字,才是正确的桃子数。
for循环问题(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。