猴子分桃

題目:海灘上有一堆桃子,五隻猴子來分。第一隻猴子把這堆桃子憑據分爲五份,多了一個,這隻猴子把多的一個扔入海中,拿走了一份。第二隻猴子把剩下的桃子又平均分成五份,又多了 一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五隻猴子都是這樣做的,問海灘上原來最少有多少個桃子?

#include <stdio.h>
void main()
{
    int i, j, s; //s爲總桃子數,i爲扔了一個
    for (i = 5; i <= 10000; i += 5) //最小爲5個,判斷用一個很大值,增加爲5的倍數
    {
        s = i + 1; //總數 = 扔掉的加上一個
        for (j = 0; j <= 5; j++) //五隻猴子
        {
            if (s % 5 == 1) //分五份,餘1個
                s = (s - 1) - (s - 1) / 5; //等式成立,繼續分下去。總數扔掉一個 - 總數扔掉一個分五份
            else
                break; 等式不成立,直接跳出
        }
        if (j == 5) //當五隻猴子都分了
        {
            s = i + 1; //總數 = i 加上扔掉的哪一個
            printf ("%d\n", s);
            break;
        }
    }
}
發佈了33 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章