๊ด€๋ฆฌ ๋ฉ”๋‰ด

Coding Planet

์žฌ๊ท€ํ•จ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜ ์˜ˆ์‹œ ๋ณธ๋ฌธ

๐ŸŽ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/์•Œ๊ณ ๋ฆฌ์ฆ˜

์žฌ๊ท€ํ•จ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜ ์˜ˆ์‹œ

jhj.sharon 2023. 8. 26. 17:21
๋ฐ˜์‘ํ˜•

| ์žฌ๊ท€ํ•จ์ˆ˜๋ž€

์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋Š” ๋ฌธ์ œ๋ฅผ ๋” ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ œ๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ์ข…๋ฃŒ ์กฐ๊ฑด์ด๋‚˜ ๋ฒ ์ด์Šค ์ผ€์ด์Šค(Base Case)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•จ์ˆ˜๋Š” ๋ฌดํ•œํžˆ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜์–ด ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๊ฒŒ ๋œ๋‹ค. ์ผ๋ฐ˜ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์€ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ฐ˜๋Œ€๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ ํ•œ ๊ธฐ๋Šฅ์„ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋ฒ ์ด์Šค ์ผ€์ด์Šค(Base Case) : ์žฌ๊ท€ ํ•จ์ˆ˜์—์„œ ์žฌ๊ท€ ํ˜ธ์ถœ ์—†์ด ์ง์ ‘ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์กฐ๊ฑด ์ฆ‰, ๋” ์ด์ƒ ๋ถ„ํ•ด๋˜์ง€ ์•Š๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ œ

 

| ์žฌ๊ท€ํ•จ์ˆ˜ ์˜ˆ์‹œ

  • ์•„๋ž˜๋Š” ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜์ด๋‹ค. n!=n×(n1)!
  • ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜๋Š” ์ •์ˆ˜ 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