- 질문 게시판입니다.
Date | 17/09/25 18:02:30 |
Name | 二ッキョウ니쿄 |
Subject | 프로그래밍 질문입니다 |
package com.tj.method; import java.util.Scanner; // 4! = 4*3*2*1 // 사용자로부터 자연수를 입력받아(음수를 입력시 계속 자연수입력받을때까지) //x의 factorial을 계산하여 출력 // factorial(int x) : x!를 보내주는 메소드 public class Ex04 { public static void main(String[] args) { //사용자로부터 자연수입력받아 // factorial(x)를 출력 int x=0; Scanner sc= new Scanner(System.in); do{ System.out.print("자연수를 입력하세요 : "); x = sc.nextInt(); }while(x<=0); System.out.println(x+"! = "+factorial(x)); } private static int factorial(int x) { //3! = 3*2!(2*1!(1)) //x! = x*(x-1)! if(x==1) { return 1; }else { return x * factorial(x-1); //재귀적 호출 } /*int result=1; for(int i=x; i>=1; i--) { result = result * i;//4*3*2*1, result*=i } return result;*/ } } 안녕하세요 자바교육 6일차 쪼렙 교육생입니다 궁금한 점은 private static int factorial(int x) 요 부분인데요 if문에서 returnX*factorial(x-1)이 왜 반복되는지 잘 모르겠습니다. for문은 반복기능이 있으니까 이해가 되는데 반복기능 없이도 반복이 되서 팩토리얼 계산이 되더라고요. 처음에는 factorial 이라는 표현 자체가 반복의 의미가 있는건가 했는데 그런얘기도 못들어서요 쪼렙 교육생에게 설명해주시면 감사드리겠습니다 ㅠㅠ 0
이 게시판에 등록된 二ッキョウ니쿄님의 최근 게시물
|