자바:알고리즘-정수 곱 하기 n!
2879 단어 자바 알고리즘
재 귀적 실현 코드:
public static long fac(int n){
if(n == 0 || n ==1)
return 1;
else
return n*fac(n-1);
}
분석:n>1 시 이 함 수 는 return*fact(n-1)을 호출 할 때마다 스 택 밑 에 누 르 는 것 을 중단 하고 fac(n-1)를 n=1 로 되 돌 릴 때 까지 반복 적 으로 호출 합 니 다.반환 값 은 순서대로 덮어 쓰 고 마지막 으로 n*fac(n-1)를 되 돌려 줍 니 다.이전 순환 에서 할당,fac(n-1)=(n-1)*(n-2)*(n-3)*(n-4)*...1 즉 마지막 반환 값 은 n 입 니 다!
for 순환 으로 구현:
public static long fac(int n){
long fac = 1;
for (i=n;n>1;i--){
fac = n*(n-1);
}
return fac;
}