2017-11-13 12 views
0

未満です。私のプログラムでは、3進数のときに12000未満の最大値を取得したいのですが、代わりに1つ高い数値になります。whileループの最大数が

count = 0 
cubed = 1 
while cubed < 12000: 
    count += 1 
    cubed = count ** 3 
print("The largest integer <12000 is", count) 
+1

試してみてください: 'print("最大の整数<12000は "、count - 1)' – John1024

+0

答えでカウントを編集せずにプログラムに見せてもらう方法はありますか? – savannah

+1

あなたのプログラムは、**キューブが12,000未満の最大番号を見つけようとします。**あなたの最大の数字は12,000未満です。あなたは明確にするべきです。 – John1024

答えて

2

whileループは、ときにのみcubed >= 12000停止します。

その前に停止したい場合は、(count+1)**3 < 12000を確認してからcount += 1を実行する必要があります。

count = 0 

while (count+1)**3 < 12000: 
    count += 1 

print("The largest integer <12000 is", count) 

PS:より簡単な方法は、12000のキューブルートを取り、整数に切り捨てることです。

+1

ありがとうございます。学校のためのその割り当ては、明らかに単純な方法は、回答ではありません – savannah

+0

@ savannah笑。あなた自身のプロジェクト/オープンソースのコードを書いた場合、どのような学校の割り当てが必要なのかにかかわらず、より簡単な方法を使います。 – udiboy1209