1~n ๊น์ง ๋ํ๋ ํจ์๋ฅผ ์ง๋ผ
int SumToN_1(int N)
{
int result = 0;
for (int i = 1; i <= N; ++i)
{
result += i;
}
return result;
}
int SumToN_2(int N, int* result)
{
if (N < 1)
{
return *result;
}
*result += N;
return SumToN_2(--N, result);
}
int SumToN_3(int N)
{
return ย N * (N + 1) / 2;
}
1๋ฒ์ ๋ฐ๋ณต๋ฌธย 2๋ฒ์ ์ฌ๊ทํจ์ย 3๋ฒ์ ์์
์ด์ ๋ ์ฐจ์ด๋ฉด ์ด๋ค์ง ์? 3๋ฒ์งธ๋ JAVA์์ ์ฒซ๋ฒ์งธ๋ ์ด์ ๋ธ๋ฆฌ๋ก ์ง๋
๋ฐ๋ณตํด์ผํ๋ ์๊ฐ ๋์ด๋๋ฉด ์๋ฐ๊ฐ ์ด์ ๋ธ๋ฆฌ๋ณด๋ค ๋น ๋ฅธ๊ฑฐ์.
์คํ๋ ค ์ฝ์ด ํ๋ก๊ทธ๋๋ฐํ๋ ๊ณณ์์ ์ ๋ฐ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ณ๋กย ์ธ ํ์๊ฐ ์์.
๊ธฐํํ๋ ์ฌ๋, ๊ตฌํํ๋ ์ฌ๋์ด ์ธ์ผ์ด ๋ง์ง;;
ํต๊ณ, ์์ด ๊ฐ์ ๊ณ ๋ฑํ๊ต๋ ์ง์๋ง์ผ๋ก ์ถฉ๋ถํ ๊ฑธ?
๊ทธ๋ฐ๋ฐ ์ด๋ฏธ ๋ฐฐ์ ์ด๋ ๊ทธ๋ฅ ์๊ธฐ๋งํ๊ณ ์ํ์ ๊ฑฐ๋ถ๊ฐ ๊ฐ์งย ์ฌ๋๋ค์ ์ ๋ฐ๊ฑฐ ์๊ฐ์ ๋ชปํ๋ ๊ฒฝ์ฐ๋ค ๋ค๋ฐ์ฌ์.
"ํ๋ก๊ทธ๋๋ฐ ํ๋๊ฒ ๊น์ง ์ํ์ ์์ฉํด์ผํจ? ์ํด๋ ์ถฉ๋ถํ ๋น ๋ฅธ๋ฐ..."
์ด๋ฌ๊ณ ๊ฑ ๋๊ฐ๋๊ฐ ์ฝ๋ฉํ๋๊ฑฐ์ง.
์์ ์ฑ์ด ์ค์ํ ํ๋ก์ ํธ์์ 2๋ฒ๊ฐ์ ์ฌ๊ท๋ฌธ์ผ๋ก ์ฐ๋ค๋ณด๋ฉด ๋์ผ๋ก ์ฝ๋๋ณด๊ธฐ๋ ์ข์๋ฐ ๋ป๋๋ ๊ฒฝ์ฐ๋ ์๊ณ ย
๋๋ฒ๊ทธ ํ๋๊ฒ๋ ์๋์ ์ผ๋ก ์ด๋ ค์.(๋ ์์ ์ ์ฌ๊ทํจ์์ชฝ์์ ์ค์ํด์ ๋ฉ๋ชจ๋ฆฌ 30000byte ์ ๋๋ฅผ dangling pointer๋ก ๋ ๋ ค ๋จน์์.)
๊ฒฐ๋ก ์ ์ํ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ค์๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ ๋ง์.
์ด์ฐจํผ ํ๋ก๊ทธ๋๋ฐ์ด ์กฐ๊ฑด+๋ฐ๋ณต์ด ํต์ฌ์ด๊ธฐ ๋๋ฌธ์.
๋๊ธ 0