Hỏi & Đáp
마지막으로 더해지는 값이 63이 맞는거 아닌가요?
for i in range ( 101 ): if hap>= 2000 : print ( " 마지막으로 더해지는 i 의 값은 " , i- 1 ) break hap += i print ( "1 에서부터 누적값은 %s" %hap) (총합이 2000을 넘을 때의 값 = 2016 / 마지막으로 더한 값 = 63) 위의 코드(수업 중 내용)에서는 i가 for i in range(101)을 넘어오면서 값이 1 추가됩니다. 만약 print("마지막으로 더해지는 i의 값은 ", i) 라고 작성하면 실제로 원하는 값은 63이지만 64로 출력됩니다. 그래서 i-1로 고친 것입니다. 아래 코드는 질문하신 분께서 작성한 코드입니다. 여기서 마지막 sum+=a를 실행했을 때 총합은 2016, a의 값은 63입니다. 합이 2000을 넘는지 판단하는 다음 코드에서, 합이 2000을 넘은 2016이 되었기 때문에 아까 2016, 63을 그대로 반환합니다. 위의 코드에서는 2000을 넘는 값(63)을 달성한 후에 i를 한 번 더 증가시켜 64가 되고, 아래에서는 63 그대로 끝납니다. 코드가 조금 달라서 착오가 있으셨던 듯 합니다. sum = 0 for a in range ( 1 , 100 ): #1 부터 99 까지 sum += a if sum > 2000 : print (a , sum) # 2000 이 넘는 시점 : a=63, sum=2016 break
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 214

