我有兩種遞歸方法。其中之一有一個特殊的公式,我必須使用第二種方法。我的任務是編寫一個名爲reportOnValues的遞歸方法,該方法將使用列表中的每個值來計算在方法 specialRecursiveFunction中實現的遞歸公式。我目前在執行我的reportValues方法時遇到了麻煩。我怎麼能做到這一點。用另一種方法實現的遞歸公式方法
1日法
public static void reportOnValues(MyListOfInts m){
if (m == null) return;
else
return specialRecursiveFunction(m.firstInt) + reportOnValues(m.restOfTheInts);
}
第2種方法
public static double specialRecursiveFunction(int x){
if (x == 1) return 0;
else if (x%2==1)
return 1 + specialRecursiveFunction(x-1);
else
return 1 + specialRecursiveFunction(x/2);
}
構建鏈表
public class MyListOfInts {
public int firstInt; // contain data
public MyListOfInts restOfTheInts; // points to next node
public MyListOfInts(int f){ // constructor 1
firstInt=f;
}
public MyListOfInts(int f, MyListOfInts r){ // constructor 2 implements nodes and data
firstInt=f;
restOfTheInts=r;
}
}
很難告訴你你正在嘗試做什麼。爲什麼你將'reportOnValues'聲明爲'void',但是試圖從中返回一個值? – Lucero
你在執行代碼時有什麼問題,我想給出的代碼除了lucero提到的代碼之外還能正常工作 – monster
我在猜測'reportOnValues'應該返回一個'double'?請澄清這一點。 –