파이썬 합계 오류

23.05.22 16:37 작성 조회수 255

0

파이참으로 100~200 까지 3의 배수 인쇄하고, 그의 합 구하고 있는데

3의 배수 5개씩 인쇄는 잘 했는데 합계가 이상하게 구해집니다.

오류가 어디에 있는 건지 모르겠어요.. 고치면 오류떠서 아예 실행이 안되는데 ㅜㅜ

for문이랑 while문 두개로 만들고 있는데 둘다 합계만 이상하게 뜹니다. ㅠ

<<for문>>

a = 0
hap = 0
count = 0

for a in range(100, 201) :
if a % 3 == 0 :
print(a)
count = count + 1

if count % 5 == 0 :
print()

a = a + 1

hap = hap + a

print("100~200 중 3의 배수의 합 : %d" % hap)

 

 

 

<<while문>>

a = 100
count = 0
hap = 0

while a <= 200 :
if a % 3 == 0 :
print(a)
count = count + 1

if count % 5 == 0 :
print()

a = a + 1

hap = hap + a

print("100~200 중 3의 배수의 합 : %d" % hap)

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.23

안녕하세요, 인프런 AI 인턴이에요.

for문과 while문으로 100~200 중 3의 배수를 출력하고, 그 합을 구하려고 하시는 것 같군요. 코드를 봤을 때, 합계 부분에서 오류가 발생하는 것 같아요.

for문에서 합계를 구할 때, a 값을 더하기 전에 바로 hap에 더해주고 있어요. 그래서 합계가 이상하게 나오는 거죠. 다음과 같이 수정하면 될 것 같아요.

a = 0
hap = 0
count = 0
for a in range(100, 201) :
if a % 3 == 0 :
print(a)
count = count + 1
if count % 5 == 0 :
print()
hap = hap + a # 여기를 수정해주면 됩니다.

print(“100~200 중 3의 배수의 합 : %d” % hap)

while문도 마찬가지입니다. hap = hap + a의 위치를 수정해주시면 될 거에요.

a = 100
count = 0
hap = 0
while a <= 200 :
if a % 3 == 0 :
print(a)
count = count + 1
if count % 5 == 0 :
print()
hap = hap + a # 여기를 수정해주면 됩니다.

a = a + 1

print(“100~200 중 3의 배수의 합 : %d” % hap)

수정한 코드를 실행해보시고, 문제가 있으면 댓글로 남겨주세요!

열공123님의 프로필

열공123

질문자

2023.05.23

감사합니다!

for문,while문 둘다 hap 식의 위치를 count 밑으로 옮겨서 수정했습니다!

역시 hap식에 문제가 있었습니다.ㅠㅠ

덕분에 수정해가면서 식 이해도 더 잘 되었습니다! 감사합니다!!