您的位置:首页 > 编程语言 > Python开发

如何优雅地求解鸡蛋问题?

2017-02-15 22:53 309 查看

如何优雅地求解鸡蛋问题?

标签(空格分隔): python

小明大学毕业后没找到工作,自力更生去菜市场卖鸡蛋。话说有一天小明去养殖场进货,看到仓库里有一大堆鸡蛋,1个1个拿正好拿完,2个2个拿还剩1个,3个3个拿正好拿完,4个4个拿还剩1个,5个5个拿还差1个,6个6个拿还剩3个,7个7个拿正好拿完,8个8个拿还剩1个,9个9个拿正好拿完。已知这一堆鸡蛋总数不超过10000个,请问这堆鸡蛋个数可能是多少?

这是一个典型的中国式求余数问题。据说python是一门优雅的编程语言,来试一试写出几行简洁的代码来帮小明算出鸡蛋个数。

假设鸡蛋个数为n,显然有 1 <= n <= 10000 ,当然 n 不会少于 9,不过这无所谓,我们要做的就是从1到10000遍历n,并从2到9对 n 进行求余(1不用求,余数皆为0)。当 n % x (x = 2,3,4,…9)全部符合题设时,此时的 n 即为正确的数量。

首先定义一个函数 eggs(n):

def  eggs(n):
if  n%2==1  and n%3==0  and n%4==1 and n%5==4 and  n%6==3  and n%7==0  and n%8==1  and n%9==0 :
return  True
else:
return  False

#主程序:
#创建一个列表推导式,符合条件的数字添加到列表egg中
egg = [ i  for  i  in  range(10000)  if  eggs(i)  ==  True ]
print(egg)


运行结果:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python