2014-09-28 3 views
-1

이것은 내가 지금까지 가지고있는 것입니다. 숫자를 바꾸는 방법을 정확히 알 수 없으므로 의미가 있습니다. 방정식의 일부로 지수를 포함해야합니까? 그것은 n1 (이전 수) + (1/n2)처럼 보일지라도 새로운 n2를 제공해야합니다. 이견있는 사람?재귀 사용하기 m (i) = 1 + 1/2 + 1/3 + 1/4 + 1/5 ... + 1/i

package myrecursivemethod; 

public class MyRecursiveMethod { 

private static double index = 0; 
private static double stoppingPoint=10; 

    public static void main(String[] args) { 
    double n1= 0; 
    double n2= 1; 
    System.out.println("index: " + index + "->" + n1); 
    myRecursiveMethod(n1, n2); 

} 
public static void myRecursiveMethod(double n1, double n2) 
{ 
    System.out.println("index: " + index + " -> " + (n1+(1/n2))); 

    if (index == stoppingPoint) 
     return; 
    index ++; 

    myRecursiveMethod(n2, n1+(1/n2)); 
} 

} 
+0

모든 변수를 인쇄하여 실제로 올바르게 보이는지 확인하십시오. –

+1

메서드에서 정적 (또는 비 정적) 필드를 사용하지 마십시오. 이 작업은'double m (double i)'와 같은 하나의 매개 변수 만있는 메소드로 수행 할 수 있습니다. m (4) = m (3) + 1/i를 의미하는이 방법을 'm (4) = (1 + 1/2 + 1/3) + 1/이제 그것을 일반화하려고 노력하십시오. – Pshemo

+0

@Pshemo 나는 그것을 대답으로 돌릴 것이고, 일부 시청자는 코멘트를 읽지 않을 것이다. – DreadHeadedDeveloper

답변

2

수식을 조금 더 자세히 살펴보고 다른 수식을 사용하여 비슷한 수식을 사용하여이 수식을 표시하는 방법을 찾아야합니다. 예를 들어

sum(i) = 1 + 2 + 3 + 4 + ... + (i-1) + i 

sum(i) = (1 + 2 + 3 + 4 + ... + (i-1)) + i 

와 동일하지만

1 + 2 + 3 + 4 + ... + (i-1) = sum(i-1) 

때문에 우리는 다음과 같이 전체 공식을 다시 작성할 수 있습니다

sum(i) = sum(i-1) + i 

(또는 실제)

,
  { sum(i-1) + i  if i>0 
sum(i) = { 
     { 0    if i==0  

질문의 수식은이 질문과 매우 유사하며 유사한 (재귀 적) 방식으로 표시 될 수 있습니다.

관련 문제