2013-10-24 5 views
0

계승을 계산하는 재귀 적 방법을 만들었지 만 주 방법에서는 for 루프를 사용하여 계승의 목록을 계산했습니다. 기본 방법에서 루프를 사용하지 않고 계승 목록을 계산하는 방법이 있습니까?루프를 사용하지 않고 계승 값을 인쇄하려면 어떻게해야합니까?

코드 : 그것은 당신이 "목록을 계산"뜻을 정확하게에 따라 다르지만,이 같은 일 인쇄

public class FactInt { 
    public static void main(String[] args) { 
     for (int n = 1; n < 11; n++) 
      System.out.println(factorial(n)); 
    } 
    //Calculates the factorial of integer n 
    public static int factorial(int n) { 
     if (n == 0) 
      return 1; 
     else 
      return n*factorial(n-1); 
    } 
} 

답변

6

: 당신이 돈 이유

public static void main(String[] args) { 
    factorial(10); 
} 
//Calculates the factorial of integer n 
public static int factorial(int n) { 
    if (n == 0) 
     return 1; 
    else { 
     int newVal = n*factorial(n-1); 
     System.out.println(newVal); 
     return newVal; 
    } 
} 
+0

@Plasmarob 계승을 인쇄합니다. – Vallentin

+0

@Plasmarob 틀렸어. 그러나 기본 케이스의 인쇄는 생략합니다. –

+0

정확합니다. – Plasmarob

0

나도 몰라 '를 루프를 사용하고 싶지만 여기에 몇 가지 아이디어가 있습니다.

루프를 직접 실행합니다.

System.out.println(factorial(1)); 
System.out.println(factorial(2)); 
// ... 
System.out.println(factorial(11)); 

다른 재귀 적 방법을 확인하고 main에서 호출.

public static void factorials(int n) 
{ 
    if (n >= 11) return; 
    System.out.println(factorial(n)); 
    factorials(n + 1); 
} 
0

사실 난 당신이 정말 원한다면 당신은 왜,하지만 글쎄, 당신은 이런 식으로 할 수있는 것이없는 이상 같은 잘 수 있다고 할 것입니다.

public class FactInt { 
    public static void main(String[] args) { 
     factorial(10); 
    } 
    //Calculates the factorial of integer n 
    public static int factorial(int n) { 
     final int calc; 

     if (n == 0) { calc = 1; } 
     else { calc = n * factorial(n - 1); } 

     System.out.println(calc); 

     return calc; 
    } 
} 
0

다음과 같이 getFactorial (int num) 메서드를 만듭니다. 해당 메서드 내에서 for 루프를 이동하고 해당 메서드를 main에서 호출하십시오.

public static void main(String[] args) { 
    int num = 11; 
    getFactorial(num); 
} 

public static void getFactorial(int num){ 
    for (int n = 1; n < num; n++) 
     System.out.println(factorial(n)); 
} 
//Calculates the factorial of integer n 
public static int factorial(int n) { 
    if (n == 0) 
     return 1; 
    else 
     return n*factorial(n-1); 
} 
0

재귀를 다음과 같이 다시 사용하십시오!

public class FactInt { 
    public static void main(String[] args) { 

     factorialList(1, 10); 
    } 
    //Calculates the factorial of integer n 
    public static int factorial(int n) { 
     if (n == 0) 
      return 1; 
     else 
      return n*factorial(n-1); 
    } 

    public static void factorialList(int min, int max) { 
     if (min != max) 
      factorialList(min, max-1); 
     System.out.println(factorial(max)); 
    } 
} 
관련 문제