枚举算法的核心概念
将问题所有的可能的解一一罗列出来,并对每一个可能的解进行判断,以此来确定这个解是否是问题真正的解,如果是,就采纳它,否则就抛弃它。中途即使找到合适的解也要继续找下去,直到将所有可能的解找完才结束。
例题1
某人忘记了支付宝的支付密码,她急需在30分钟内完成付款,用python编程帮她找回密码。
(1)密码是6位数字,前面两位为85;
(2)最后两位数字相同;
(3)能被13和33整除。
for i in range(10000):
s = 850000+i
if s % 13 == 0 and s % 33 == 0:
a = s % 10
b = s // 10 % 10
if a == b:
print(s)
例题2
有一盒乒乓球,9个9个地数,最后余下7个;5个5个地数,最后余下2个;4个4个地数 ,最后余下1个。问这盒乒乓球至少有多少个?
参考代码1
n = 16
while True:
if n % 9 == 7 and n % 5 == 2 and n % 4 == 1:
print(n)
break
n += 1
参考代码2
n = 16
while True:
if n % 5 == 2:
break
n = n + 9
while True:
if n % 4 == 1:
break
n = n + 45
print(n)