Coding Planet
์ฌ๊ทํจ์ ์๊ณ ๋ฆฌ์ฆ - ํฉํ ๋ฆฌ์ผ ํจ์ ์์ ๋ณธ๋ฌธ
๐ ์ฝ๋ฉํ
์คํธ/์๊ณ ๋ฆฌ์ฆ
์ฌ๊ทํจ์ ์๊ณ ๋ฆฌ์ฆ - ํฉํ ๋ฆฌ์ผ ํจ์ ์์
jhj.sharon 2023. 8. 26. 17:21๋ฐ์ํ
| ์ฌ๊ทํจ์๋
์ฌ๊ท ํจ์๋ ์๊ธฐ ์์ ์ ๋ค์ ํธ์ถํ๋ ํจ์๋ฅผ ์๋ฏธํ๋ค. ์ด๋ฌํ ํจ์๋ ๋ฌธ์ ๋ฅผ ๋ ์์ ํ์ ๋ฌธ์ ๋ก ๋ถํดํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ฌ๊ท ํจ์๋ ์ข ๋ฃ ์กฐ๊ฑด์ด๋ ๋ฒ ์ด์ค ์ผ์ด์ค(Base Case)๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํจ์๋ ๋ฌดํํ ์์ ์ ํธ์ถํ๊ฒ ๋์ด ์คํ ์ค๋ฒํ๋ก์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ์ผ๋ฐ ๋ฐ๋ณต๋ฌธ์ ํตํด ๊ตฌํ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ์ฌ๊ท ํจ์๋ฅผ ํตํด ๊ตฌํ์ด ๊ฐ๋ฅํ๋ฉฐ ๋ฐ๋๋ก ์ฌ๊ทํจ์๋ก ๊ตฌํ ํ ๊ธฐ๋ฅ์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํ ๊ฐ๋ฅํ๋ค.
- ๋ฒ ์ด์ค ์ผ์ด์ค(Base Case) : ์ฌ๊ท ํจ์์์ ์ฌ๊ท ํธ์ถ ์์ด ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์กฐ๊ฑด ์ฆ, ๋ ์ด์ ๋ถํด๋์ง ์๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์
| ์ฌ๊ทํจ์ ์์
- ์๋๋ ํฉํ ๋ฆฌ์ผ ํจ์์ด๋ค. n!=n×(n−1)!
- ํฉํ ๋ฆฌ์ผ ํจ์๋ ์ ์ n์ ํฉํ ๋ฆฌ์ผ ๊ฐ์ ๊ณ์ฐํ๋ค. ํจ์๋ ์์ ์ ํธ์ถํ๋ ์ฌ๊ทํธ์ถ์ ํฌํจํ๊ณ ์์ผ๋ฉฐ 'n<=1'์ผ ๋ ์ฌ๊ท ํธ์ถ์ด ์ข ๋ฃ๋๋ค. (๋ฒ ์ด์ค ์ผ์ด์ค)
- 0! =1์ ์ํ์ ์ผ๋ก ์ ์๋ ๊ฒ์ผ๋ก n = 0์ผ ๋์ ๊ฐ์ ์ง์ ๋ฐํ๋๋ค.
public class RecursiveExample {
public static int factorial(int n) {
if (n <= 1) {
return 1; // ๋ฒ ์ด์ค ์ผ์ด์ค
}
return n * factorial(n - 1); // ์ฌ๊ท ํธ์ถ
}
public static void main(String[] args) {
System.out.println(factorial(5)); // ์ถ๋ ฅ: 120
}
}
๐ ์ฐธ๊ณ : https://lktprogrammer.tistory.com/106
๋ฐ์ํ
'๐ ์ฝ๋ฉํ ์คํธ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments