자바 초보가 질문 하나 올리겠습니다..
밝은빛누리예
2023.04.01
1+ 1/2 + 1/3 + ……… + 1/n (단, n은 양의 정수)
① 반복적(iterative)인 방법으로 해결하고, n=50일 경우, 결과 값이 무엇인지 확인(테스트)하여 보시오. (단, n은 명령행 인자로 제공)
② 재귀적(recursive)인 방법으로 해결하고, n=100일 경우, 결과 값이 무엇인지 확인(테스트)하여 보시오.(단, n은 명령행 인자로 제공)
이 문제를 푸는건데 아무리 해봐도 안되더라구요..
답변 좀 꼭 부탁드릴께요...
P.S: 대충은 알겟는데 자꾸 오류가 떠서 어디가 잘못 된건지도 모르겟구요...부탁드릴께요
-
온새미로
double f (int i, int t){
if( i == 50 ) return t;
f( ++i, t + 1/i);
}
이런식으로 하는게 iterative 적 재귀 아닌가요? -
바나나맛사탕
double f( int n ) { return n == 1 ? 1 : 1.0/n + f(n-1); }
-
늘빈
double s = 0; for( int i = 0; i n; i++ ) { s += 1.0/n; }