ํฉํ ๋ฆฌ์ผ์ ์ํ, ๋ฐ๋ณต ๊ฐ๋ ์ ๋ง์ถ์ด์ ํ๋ก๊ทธ๋จ์ ์ง๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ํ
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int factorial(int n)
{
cout << n << "\n";
if (n <= 1)
{
return n;
}
else
{
return (n * factorial(n - 1));
}
}
int main()
{
int k = factorial(8);
cout << k;
return 0;
}
์ถ๋ ฅ
8
7
6
5
4
3
2
1
40320
์คํ ํธ์ถ์ ๋ฐ๋ผ(๋ค์ ํธ์ถ๋ ํจ์๋ถํฐ ๋ฆฌํด)
return (n * factorial(n - 1)); ์์๋๋ก
return (1 * 1);
return (2 * 1);
return (3 * 2);
return (4 * 6);
return (5 * 24);
return (6 * 120);
return (7 * 720);
return (8 * 5040) = 40320 ์ด ๋๋ค.
์์ ๊ฐ์ด ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด,(ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ํ๋์ ํจ์๊ฐ ์๊ธฐ ์์ ์ ๋ค์ ํธ์ถ)
์ฌ์ค์ ๋ค๋ฅธ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค.
๋ณต๊ท ์ฃผ์๊ฐ ์์คํ ์คํ์ ์ ์ฅ๋๊ณ
ํธ์ถ๋๋ ํจ์๋ฅผ ์ํ ๋งค๊ฐ๋ณ์์ ์ง์ญ ๋ณ์๋ฅผ ์คํ์ผ๋ก๋ถํฐ ํ ๋น๋ฐ๋๋ค.
์ด๋ฌํ ํจ์๋ฅผ ์ํ ์์คํ ์คํ์์์ ๊ณต๊ฐ์ ํ์ฑ ๋ ์ฝ๋๋ผ๊ณ ํ๋ค.
ํธ์ถ๋ ํจ์๊ฐ ์๊ธฐ ์์ ์ด๋ฏ๋ก ์๊ธฐ ์์ ์ ์์ ์์น๋ก ์ ํํ์ฌ ์ํ์ ์์ํ๋ค.
ํธ์ถ๋ ํจ์๊ฐ ๋๋๊ฒ ๋๋ฉด ์์คํ ์คํ์์ ๋ณต๊ท ์ฃผ์๋ฅผ ์ถ์ถํ์ฌ ํธ์ถํ ํจ์๋ก ๋๋์๊ฐ๊ฒ ๋๋ค.
์ํํธ์ถ์ด ๊ณ์ ์ค์ฒฉ๋ ์๋ก ์์คํ ์คํ์๋ ํ์ฑ๋ ์ฝ๋๋ค์ด ์์ด๊ฒ ๋๋ค.
ํจ์ํธ์ถ๋ง๋ค ์๋ก์ด ์ง์ญ๋ณ์๋ฅผ ๋ง๋ค ์ ์๊ธฐ์ ์ํํธ์ถ์ด ๊ฐ๋ฅํ๋ค.
์ด์ ๊ฐ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์
์๊ธฐ ์์ ์ ์ํ์ ์ผ๋ก ํธ์ถํ๋ ๋ถ๋ถ๊ณผ ์ํํธ์ถ์ ๋ฉ์ถ๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
๋ง์ฝ ์ํ ํธ์ถ์ ๋ฉ์ถ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ์์คํ ์คํ์ ๋ค ์ฌ์ฉํ ๋๊น์ง ์ํ์ ์ผ๋ก ํธ์ถ๋๋ค๊ฐ ๊ฒฐ๊ตญ ์ค๋ฅ๋ฅผ ๋ด๋ฉด์ ๋ฉ์ถ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๋ฐ๋์ ์ํ ํธ์ถ์๋ ์ํ ํธ์ถ์ ๋ฉ์ถ๋ ๋ฌธ์ฅ์ด ํฌํจ๋์ด์ผ ํ๋ค.
2. ๋ฐ๋ณต
์ผ๋ฐ์ ์ผ๋ก ์ํ์ ํจ์ ํธ์ถ์ ํ๊ฒ ๋๋ฏ๋ก ๋ฐ๋ณต์ ๋นํด ์ํ์๋ ๋ฉด์์ ๋จ์ด์ง๋ค.
์๋์ ๊ฐ์ด ๋ฐ๋ณต ํ๋ก๊ทธ๋จ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int factorial(int n)
{
int i, result = 1;
for (i = 1; i <= n; i++)
{
cout << i << "\n";
result = result * i;
}
return result;
}
int main()
{
int k = factorial(8);
cout << k;
return 0;
}
1
2
3
4
5
6
7
8
40320
<์ ๋ฆฌ>
์ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์๊ฐ ์ํ์ ์ผ๋ก ๋์ด ์๋ ๊ฒฝ์ฐ์ ์ ๋ฆฌํ๋ค.
ํฉํ ๋ฆฌ์ผ ํจ์, ํผ๋ณด๋์น ์์ด, ์ดํญ๊ณ์ ๊ณ์ฐ, ์ด์ง ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ, ์ด์ง ํ์, ํ๋ ธ์ด ํ ๋ฌธ์ ๋ค์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๋ ๊ฒ์ด ์์ฐ์ค๋ฌ์ด ์๊ณ ๋ฆฌ์ฆ๋ค์ด๋ค.
'์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [C# ์๋ฃ๊ตฌ์กฐ] ๋์ ๋ฐฐ์ด(List: C++vector์ ์ ์ฌํจ) ๊ตฌํ (0) | 2022.02.04 |
|---|---|
| [C# ์๋ฃ๊ตฌ์กฐ] ์ ํ ์๋ฃ ๊ตฌ์กฐ ( ๋ฐฐ์ด vs ๋์ ๋ฐฐ์ด vs ์ฐ๊ฒฐ ๋ฆฌ์คํธ) (0) | 2022.02.03 |
| C# Queue์ Stack ํน์ฑ์ LinkedList๋ก ๊ทธ๋๋ก ๊ตฌํ (0) | 2022.01.25 |
| [C++]์ํํ ๊ตฌํ, ์ค์๊ธฐ ์์ (0) | 2021.12.15 |