对于风格没有要点,但是对于所有可能性的简单搜索很快就可以写出来,并且足够快以用于实际目的。从所有的镍币开始,不用硬币,然后继续添加一个硬币并从镍币中取出一个,直到你得到答案(或不)。
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