今天偶然在一個羣裏看到了一道題:
一筐雞蛋: 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)
運行結果: