用Python求解拿雞蛋問題

今天偶然在一個羣裏看到了一道題:

一筐雞蛋: 1個1個拿,正好拿完。 2個2個拿,還剩1個。 3個3個拿,正好拿完。 4個4個拿,還剩1個。 5個5個拿,還剩4個。 6個6個拿,還剩3個。 7個7個拿,還剩5個。 8個8個拿,還剩1個。 9個9個拿,正好拿完。 問筐裏有多少雞蛋?

這類題目其實是考察公倍數、整除、餘數等小學數學概念的題目。用筆也可以很快算出來,正好最近在學python,就想試試用python來求解。因爲這類題目有很多,隨便改個數字就不一樣了,所以代碼裏拿幾個雞蛋還剩幾個雞蛋是自己輸入的。

print('這個小程序解決一筐雞蛋的問題')

x1 =input('請輸入一個一個拿還剩幾個(正好拿完輸入0):')
x2 =input('請輸入兩個兩個拿還剩幾個(正好拿完輸入0):')
x3 =input('請輸入三個三個拿還剩幾個(正好拿完輸入0):')
x4 =input('請輸入四個四個拿還剩幾個(正好拿完輸入0):')
x5 =input('請輸入五個五個拿還剩幾個(正好拿完輸入0):')
x6 =input('請輸入六個六個拿還剩幾個(正好拿完輸入0):')
x7 =input('請輸入七個七個拿還剩幾個(正好拿完輸入0):')
x8 =input('請輸入八個八個拿還剩幾個(正好拿完輸入0):')
x9 =input('請輸入九個九個拿還剩幾個(正好拿完輸入0):')

max_number =input('請輸入最大值(此類題目沒有唯一解,請輸入求解的最大值):')

print()

#開始求解雞蛋個數
#先定義個函數求解雞蛋數
def eggs(x):
    if x%2 == int(x2) and x%3 == int(x3) and x%4 == int(x4) and x%5 == int(x5) and x%6 == int(x6) and x%7 == int(x7) and x%8 ==int(x8) and x%9 == int(x9):
        return True
    else:
        return False
egg = [i for i in range(1,int(max_number)) if eggs(i) == True]

if len(egg) == 0:
    print('沒有結果,請檢查輸入是否有誤或者調整最大值')
else:
    print(max_number,'以內有',len(egg),'個答案:')
    print(egg)

運行結果:
運行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章