2022年 11月 16日

“求答案?一筐鸡蛋:几个几个拿”的Python解答

从春节一直都待在家,家人亲友网上活动,也成了一种消遣。
互相会发一些东西,用来打发时间。
比如今天,家人收到了这样的问卷。

求答案 ?
一筐鸡蛋:
1个1个拿,正好拿完。
2个2个拿,还剩1个。
3个3个拿,正好拿完。
4个4个拿,还剩1个。
5个5个拿,还差1个
6个6个拿,还剩3个。
7个7个拿,正好拿完。
8个8个拿,还剩1个。
9个9个拿,正好拿完。
问筐里最少有多少鸡蛋?
能算出这道题的智商不一般!求答案 ?有高手没,算算吧!
算不出转发其他群,看看哪个群里高手多?。

哇,这要是搁在10年前我也想拿来练练。
看动漫的我,面对家人各执一词的答案,
直接祭出python,因为人生苦短!

a1 = range(1,10)
a2 = [0,1,0,1,4,3,0,1,0]
for i in range(9,10000):
	for j in range(9):
		if i%a1[j]!=a2[j]:
			break
	else:
		print(i)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1449
3969
6489
9009
  • 1
  • 2
  • 3
  • 4

还真是蛮大的数字,倒是没见过筐能放上千鸡蛋。
那么家人得出的数字189,哪里才是错误点?

a1 = range(1,10)
a2 = [0,1,0,1,4,3,0,1,0]
num = 189
for j in range(9):
	if num%a1[j]!=a2[j]:
		print('[出错点]{0}除{1}余{2}'.format(num,j+1,num%a1[j]))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
[出错点]18985
  • 1

指出错误,不扰兴致,安静的做个裁判。
作为互联网应用企业的员工,宅在家远程办公,减少出行,就是最好的答卷。
管好自己,不要添乱。
凛冬之下,静待春天。
——2020年2月12日,居家孵蛋的第24天


今天看了一眼发现口算也能5分钟算出来。
顺手记一下思路:

  1. 7,9都正好拿完,说明是7×9=63的倍数;
  2. 5还差1个,2余1,说明尾数只能是9;
  3. 63的个位的3乘以[0-9],只有3×3能得到尾数为9,所以答案是63x[3,13,23,…]
  4. 最终得出63×23=1449满足题意