用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)

运行结果:
运行结果

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