과제
100에서 500 사이의 모든 정수의 합을 구합니다.
공식을 사용하지 않고 이 문제를 해결하는 프로그램을 작성해 봅시다. 예를 들어 변수
s
에 더한 결과를 다음과 같이 쓰면
\(s=100+101+102+103+...+500\),
컴퓨터가 산술식에서 줄임표를 사용하는 방법을 이해하지 못하고 100에서 500까지의 모든 숫자를 작성해야 하기 때문에 녹음 자체에 많은 시간을 할애할 것입니다. 그리고 그러한 프로그램의 가치는 무시할 만하다. 특히 숫자를 변경하고 다른 범위를 사용하려는 경우.
어떻게 해야 할까요?
위의 항목에 주의를 기울이면 "
+
"를 계속 사용합니다.
점차적으로
s
변수에 숫자를 추가해 볼 수 있습니다. 예를 들어, 이 표기법을 사용하여
s = s + i
.
우리가 한 일:
1) 오른쪽에 s + i
, 라는 표현을 넣습니다. 즉, 변수 s
의 값을 가져와 추가합니다. 변수의 값 i
;
2) 왼쪽에 변수s
의 이름을 설정합니다. 즉, 오른쪽의 전체 계산 결과가 동일한 변수 s
에 저장되므로 변수 s
의 값을 변경할 것입니다.
원하는 범위에서 변수 i
의 값을 변경하는 것만 남아 있습니다. 이것은 for
.
루프로 수행할 수 있습니다.
범위에 있는 100에서 500까지의 숫자는 차례로
i
변수로 들어가야 합니다.
예시
// 중요한! 먼저 변수 s를 재설정해야 합니다.
// 첫 번째 단계에서 숫자 100을 0에 더하고,
// 그리고 메모리에 있는 것이 아닙니다!
s=0;
for ( i = 100; i <= 500; i++) // 변수 i가 있는 루프 헤더
s = s + i; // 값을 100에서 500으로 1씩 변경합니다.
// 루프 본문에서 점차적으로 변수 s까지,
// 변화하는 변수 i의 값을 더하고,
// 결과는 변수 s에 다시 저장됩니다.
이 솔루션은 작업에 대한 합계를 계산하는 것과 매우 유사합니다.
\(s = 0 + 100 = 100, \\s = 100 + 101 = 201, \\s = 201 + 102 = 303 \\ ... \)