0

1 つの入力より小さいすべての平方数を出力するプログラムを作成するように依頼されました。ただし、このコードには特定できない非常に小さな問題が 1 つあります。

from math import sqrt
n=int(input())
counter = 0
while counter * counter < n:
   counter = counter + 1
   print(counter * counter)

問題は、すべての正しい正方形が出力されるだけでなく、入力された正方形も出力されることです。誰かがこれを解決する方法を教えてください。助けてくれてありがとう。

4

1 に答える 1

3

インクリメントを 1 行下に移動し、1 からカウントを開始します。

n=int(input())
counter = 1
while counter * counter < n:
   print(counter * counter)
   counter += 1

あなたのコードでは、それをテストした後正方形を印刷する前にcounterインクリメントされます。したがって、が より小さい場合でも、 である必要はありません。ncounter * countern(counter + 1) * (counter + 1)

counter * counter増分を 1 行下に移動すると、テストしたばかりの値であるが適切に出力されますn

于 2013-02-19T14:54:49.433 に答える