題目描述
某人有8 角的郵票5 張,1 元的郵票4 張,1 元8 角的郵票6 張,用這些郵票中的一張或若干張可以得到多少中不同的郵資?
輸入描述:
無
輸出描述:
輸出一行,表示題目所求。
本人解答:
a = [8, 10, 18]
b = [5, 4, 6]
all = []
for i in range(b[0] + 1):
for j in range(b[1] + 1):
for z in range(b[2] + 1):
all.append(a[0] * i + a[1] * j + a[2] * z)
all_ = []
for x in all:
if x not in all_:
all_.append(x)
print(len(all_) - 1)
運(yùn)行結(jié)果:
優(yōu)質(zhì)解答:
L = []
for i in range(6):
for j in range(5):
for k in range(7):
L.append(i * 8 + j * 10 + k * 18)
print(len(set(L)) - 1)
set()函數(shù):
set() ?函數(shù)創(chuàng)建一個無序不重復(fù)元素集,可進(jìn)行關(guān)系測試,刪除重復(fù)數(shù)據(jù),結(jié)合“&”、“|”、“-”還可以計(jì)算求并集、交集、差集等。
例如:
m = [1, 2, 3, 4, 5, 1, 2]
n = [1, 2, 3, 6, 7, 6, 7]
print(type(m), type(n))
m_ = set(m)
n_ = set(n)
print(m_, type(m_), n_, type(n_)) # 集合中的數(shù)據(jù)不重復(fù),可以用來數(shù)據(jù)去重
print(m_ & n_) # 求交集
print(m_ | n_) # 求并集
print(m_ ^ n_) # 求差集,兩個集合除了并集以外的元素
print(m_ - n_) # 求m_集合比n_多出的元素
print(n_ - m_) # 求n_集合比m_多出的元素
輸出:
{1, 2, 3, 4, 5}
{1, 2, 3, 6, 7}
{1, 2, 3}
{1, 2, 3, 4, 5, 6, 7}
{4, 5, 6, 7}
{4, 5}
{6, 7}
# 列表(list)、元組(tuple)、集(set)、數(shù)組(array)的相互轉(zhuǎn)換: https://blog.csdn.net/Darren1921/article/details/93731483
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
