スタイルのポイントはありませんが、すべての可能性を簡単に検索すると、実用的な目的ですばやく簡単に作成できます。すべてのニッケルから始まり、ダイムがない場合は、ダイムに1を加え続け、答えを得るまで(またはしないで)ニッケルから1つを取り除きます。
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チュートリアル(Googleダイブ・イン・パイソン)が役に立ちます。 – ChristopheD
プログラミング経験はありますか? (任意の言語) –
* .05d + .5 -.05d = .85 *いいえ、どんなdでも、常に0.5になります。 ;) – Gandaro