码迷,mamicode.com
首页 > 其他好文 > 详细

for循环问题(1)

时间:2017-07-22 22:42:12      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:原来   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的时候可以分出来的数字,才是正确的桃子数。

 

for循环问题(1)

标签:原来   sys   bsp   数字   for   print   多少   ==   结果   

原文地址:http://www.cnblogs.com/hr-l01-xr/p/7222883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!