菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 基础教程
(追記) (追記ここまで)

Python 练习实例80

Python 100例 Python 100例

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

程序分析:无。

实例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-if__name__ == '__main__': i = 0j = 1x = 0while(i < 5) : x = 4 * jforiinrange(0,5) : if(x%4 != 0) : breakelse : i += 1x = (x/4) * 5 +1j += 1printx

以上实例输出结果为:

3121

Python 100例 Python 100例

AI 思考中...

2 篇笔记 写笔记

  1. #0

    朦胧

    253***[email protected]

    31

    参考方法:

    # coding:utf-8
    # 猴子分桃,最少问题分析:问最少有多少只桃子,则岸上最后剩的桃子数目越小,则原岸上的桃子越少
    # 假设最后岸上还剩4x只桃子,可以利用递归方法求解
    num=int(input("输入猴子的数目:"))
    def fn(n):
     if n==num:
     return(4*x) #最后剩的桃子的数目
     else:
     return(fn(n+1)*5/4+1)
     
    x=1
    while 1:
     count=0
     for i in range(1,num):
     if fn(i)%4==0 :
     count=count+1
     if count==num-1:
     print("海滩上原来最少有%d个桃子" % int(fn(0)))
     break
     else:
     x=x+1
    

    朦胧

    253***[email protected]

    9年前 (2017年06月15日)
  2. #0

    488***[email protected]

    18

    比较笨的方法

    start,end,m1=0,100,0
    while m1==0:
     end=end*2
     for i in range(start,end):
     m5=5*i+1
     if m5%4==0:
     m4=(m5/4)*5+1
     if m4%4==0:
     m3=(m4/4)*5+1
     if m3%4==0:
     m2=(m3/4)*5+1
     if m2%4==0:
     m1=(m2/4)*5+1
     break
     start=i
    print("最少为:%d个桃子" % m1)
    

    488***[email protected]

    9年前 (2017年11月16日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /