2014-09-28 2 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) = (1 + 1/2 + 1/3) + 1/4', что означает, что 'm (4) = m (3) + 1/i'. Теперь попробуйте обобщить его. – 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  

Формула из вашего вопроса очень похожа на этот вопрос и может быть представлена ​​аналогичным способом (рекурсивным).

Смежные вопросы