【python学习】枚举算法案例分析-创新互联
输出由1 2 3 4 这4个数字组成的每位上的数字都不同的所有三位数《中学生可以这样学Python》P176-180
创新互联公司主营连云港网站建设的网络公司,主营网站建设方案,成都App定制开发,连云港h5小程序制作搭建,连云港网站营销推广欢迎连云港等地区企业咨询
#枚举算法案例分析
## 输出由1 2 3 4 这4个数字组成的每位上的数字都不同的所有三位数
from itertools import permutations
def demo(digits,num):
for item in permutations(digits,num):
print(int(''.join(map(str,item))),end=',')
demo((1,2,3,4),3)
编写函数 接收一个正偶数为参数,输出两个素数,并且这两个素数之和等于原来的正偶数,输出所有符合条件的素数#编写函数 接收一个正偶数为参数,输出两个素数,并且这两个素数之和等于原来的正偶数,输出所有符合条件的素数
def IsPrime(p):
if p==2:
return True
if p%2==0:
return False
for i in range(3,int(p**0.5)+1,2):
if p%i==0:
return False
return True
def demo(n):
if isinstance(n,int) and n>0 and n%2==0:
for i in range(2,n//2+1):
if IsPrime(i) and IsPrime(n-i):
print('{}+{}={}'.format(i,n-i,n))
demo(30)
编写程序 输出所有3位水仙花数## 编写程序 输出所有3位水仙花数
for i in range(100,1000):
bai,shi,ge=map(int,str(i))
if ge**3+shi**3+bai**3==i:
print(i)
编写程序 寻找指定位数的黑洞数##编写程序 寻找指定位数的黑洞数
def main(n):
start=10**(n-1)
end=10**n
for i in range(start,end):
big=''.join(sorted(str(i),reverse=True))
little=''.join(sorted(str(i),reverse=False))
big,little=map(int,(big,little))
#big,little=int(big),int(little)
if big-little==i:
print(i)
main(4)
啤酒问题## 啤酒问题 5桶葡萄酒和1桶啤酒 6个桶的容量分别为30 32 36 38 40 62升。并且只卖整桶酒 不零卖。
#第一位顾客买走2整桶葡萄酒 第二位顾客买走的葡萄酒是第一位顾客的2倍 那么本来有多少啤酒呢
#分析,顾客1买走2桶,顾客2至少买3桶,共只有5桶葡萄酒,所以顾客2只可能买3桶,所以啤酒就1桶
#分析,顾客1买L升,顾客2买2L升,一共3L升。
buckets={30,32,36,38,40,62}
total=sum(buckets)
for item in buckets:
if (total-item)%3==0:
print('啤酒是',item)
break
结果:
>>>%Run test8.py
123,124,132,134,142,143,213,214,231,234,241,243,312,314,321,324,341,342,412,413,421,423,431,432,
7+23=30
11+19=30
13+17=30
153
370
371
407
6174
啤酒是 40
>>>
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
名称栏目:【python学习】枚举算法案例分析-创新互联
文章来源:http://scyanting.com/article/cddisg.html