日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言经典例80-猴子分桃

發(fā)布時間:2025/6/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言经典例80-猴子分桃 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 1 題目
  • 2 分析
  • 3 實現(xiàn)
  • 4 運行結(jié)果

1 題目

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

2 分析

設(shè)原來至少有 xxx 個桃子:

  • 第一只猴子拿走一份后,剩余的444份桃子總數(shù)為aaaa=4/5?(x?1)a=4/5*(x-1)a=4/5?(x?1)
  • 第二只猴子拿走一份后,剩余的444份桃子總數(shù)為bbbb=4/5?(a?1)b=4/5*(a-1)b=4/5?(a?1)
  • 第三只猴子拿走一份后,剩余的444份桃子總數(shù)為cccc=4/5?(b?1)c=4/5*(b-1)c=4/5?(b?1)
  • 第四只猴子拿走一份后,剩余的444份桃子總數(shù)為dddd=4/5?(c?1)d=4/5*(c-1)d=4/5?(c?1)
  • 第五只猴子拿走一份后,剩余的444份桃子總數(shù)為eeee=4/5?(d?1)e=4/5*(d-1)e=4/5?(d?1)
  • xxx 就是要從 eee 反推到 xxx,本題限定了要求桃子最少的情況,那么當輪到第五只猴子時,要保證最少,則一開始設(shè) e=4e = 4e=4 即此時剩余4份每份只有1個桃子,然后利用該假設(shè)進行向上遞歸計算每輪剩余的桃子個數(shù),判斷每輪剩余桃子個數(shù)能否被4整除,若中間有一輪不能被4整除,則一開始 e!=4e!=4e!=4,則用 2?42*42?4重新嘗試,每輪都要乘444是因為,每輪都要保證能被4整除。

    3 實現(xiàn)

    #include <stdio.h> #include <stdlib.h>int main() {int x; // 桃子總數(shù)int i = 0; // 循環(huán)輪數(shù)int j = 1; // 暫存每輪嘗試的起始e的倍數(shù)while (i < 5) { // 一共五只猴子,五輪循環(huán)x = 4 * j; // 擬定起始e的值for (i = 0; i < 5; i++) {if (x % 4 != 0) { // 最后一只猴子待分配的桃子數(shù)一定能被4整除break; // 若在5輪中某一論不能被4整除,則要重新更換起始e的值}x = (x/4)*5+1; // 向上遞歸累加}j++; // 通過遞增j來更換4的倍數(shù),從而重新更換起始e的值}printf("%d\n", x);return 0; }

    4 運行結(jié)果

    3121

    總結(jié)

    以上是生活随笔為你收集整理的C语言经典例80-猴子分桃的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。