2013-02-19 6 views
0

하나의 입력보다 작은 모든 숫자를 인쇄하는 프로그램을 작성해야합니다.파이썬 3 - 사각형. 코드가 거의 완료 됨

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

참조는 모두 올바른 사각형을 출력뿐만 아니라, 입력 광장였습니다, 문제는, 그러나, 나는 정확히 파악할 수없는 것이 코드에서 하나의 아주 약간의 문제가있다. 누군가이 문제를 해결하는 방법에 대한 아이디어를 제공해 주시겠습니까? 도와 주셔서 감사합니다.

답변

3

는 간단하게 한 줄 아래로 증가를 이동하고 1에서 계산을 시작 : 코드 counter에서

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

을 증가이 광장을 인쇄 전에 n하지만 에 대해 그것을 테스트 후. 따라서 counter * countern보다 작은 경우에도 (counter + 1) * (counter + 1) 일 필요는 없습니다.

증가분을 한 줄 아래로 이동하면 n과 방금 테스트 한 값인 counter * counter이 올바르게 인쇄됩니다.

+0

도움 주셔서 감사합니다. – user2080719