๋ฐ์ํ
์ฝ๊ฒ ํ์ด์ด C์ธ์ด Express 7์ฅ 9๋ฒ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์.
(1+2+3+...+n)๊ฐ 10000์ ๋์ง ์์ผ๋ฉด์ ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ ๊ทธ ๋์ n์ ๊ฐ์ ๊ตฌํ๋ผ.
HINT : ๋ฌดํ ๋ฃจํ๋ฅผ ์คํํ๋ฉด์ sum์ i์ ๊ฐ์ ๋ํ๋ค. ๋ฐ๋ณตํ ๋๋ง๋ค i๋ 1์ฉ ์ฆ๊ฐ๋๋ค. sum์ด 10000์ ๋์ผ๋ฉด sum์์ i๋ฅผ ๋นผ๊ณ i๋ฅผ ๊ฐ์์ํจ ํ์ break๋ฅผ ์คํํ๋ค.
ํ์ด
i๋ฅผ 1๋ถํฐ ๋ฐ๋ณต์ํค๋๋ฐ, n์ด ๋ช ๊น์ง ๊ฐ์ค ๋ชจ๋ฅด๋ฏ๋ก ๋จ์ํ ๋ฌดํ๋ฃจํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํธํ๋ฐ, ์ด๋ for๋ณด๋ค while(1)์ ์ข ์ข ์ฌ์ฉํ๋ค. ๊ทธ๋ฆฌ๊ณ 10000์ด ๋์ผ๋ฉด break๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด๋ณด์.
์ฝ๋
#include <stdio.h>
int main(void) {
int i = 0, sum = 0;
while (1) {
i++;
sum += i;
if (sum >= 10000)
break;
}
printf("1๋ถํฐ %d๊น์ง์ ํฉ์ด %d์
๋๋ค.\n", (i - 1), sum - i);
return 0;
}
์คํ ๊ฒฐ๊ณผ
1๋ถํฐ 140๊น์ง์ ํฉ์ด 9870์ผ๋ก ์ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ฃผ์ด์ง ํํธ ๋๋ก ์์ฑํ๋ค๋ฉด ์ฌ์ด ๋ฌธ์ ์ด๋ค.
728x90
๋ฐ์ํ
๋๊ธ