對於風格沒有要點,但是對於所有可能性的簡單搜索很快就可以寫出來,並且足夠快以用於實際目的。從所有的鎳幣開始,不用硬幣,然後繼續添加一個硬幣並從鎳幣中取出一個,直到你得到答案(或不)。
def solve(ncoins, cents):
nickels = ncoins
dimes = 0
for ii in range(ncoins):
if (nickels * 5) + (dimes * 10) == cents:
return "{nickels} nickels, {dimes} dimes".format(
nickels=nickels, dimes=dimes)
nickels -= 1
dimes += 1
raise AssertionError("{ncoins} coins can't be {cents} cents!".format(
ncoins=ncoins, cents=cents))
print solve(10, 85)
print solve(10, 75)
print solve(100, 75)
輸出:
3 nickels, 7 dimes
5 nickels, 5 dimes
Traceback (most recent call last):
File "/home/akg/tmp/sacoins.py", line 16, in <module>
print solve(100, 75)
File "/home/akg/tmp/sacoins.py", line 10, in solve
raise AssertionError("{ncoins} coins can't be {cents} cents!".format(ncoins=ncoins, cents=cents))
AssertionError: 100 coins can't be 75 cents!
您需要提供'some'代碼。您將通過嘗試瞭解更多。也許一個好的Python教程(谷歌潛入Python)可以提供幫助。 – ChristopheD
你有任何編程經驗嗎? (任何語言) –
* .05d + .5 -.05d = .85 * nope,無論d是什麼,它總是0.5。 ;) – Gandaro