我們被告知使用遞歸類進(jìn)行二分搜索。但是,由于我的教授(我尋求幫助時沒有詳細(xì)說明)并且一直在與一位同學(xué)一起工作,因此我被困住了,因為遞歸無法正常工作。我們得出需要 int count 的結(jié)論,但我不確定在哪里或如何實現(xiàn)它。Java 不是我最擅長的語言,因此指南或提示會非常有幫助。 public class Recursive { public int BinarySearch(int x[], int target, int low, int high) { if (low >= high) return -1; int mid = (low + high)/2; if (x[mid] > target) return BinarySearch(x, target, low, mid-1); else if (x[mid] < target) return BinarySearch(x, target, mid+1, high); ; return mid; } public int firstNnumber(int n) { if (n < 1) return 0; return firstNnumber(n-1) + n; } public int firstNnumber2(int n) { if (n==1) return 1; if (n==2) return 3; boolean even = (n%2 == 0); n /= 2; if (even) { return 2*firstNnumber2(n) + n*n; } else return 2*firstNnumber2(n) + (n + 1)*(1+n); } public int gaussian(int n) { return n*(n+1)/2; } static public void main(String [] args) { Recursive r = new Recursive(); System.out.println("By Gussain, Sum of first 100000 integers=" + r.gaussian(10000)); System.out.println("By recurssion 2, Sum of first 100000 integers=" + r.firstNnumber2(6)); } } 這是打印的,我不明白我的代碼有什么問題。通過 Gussain,前 100000 個整數(shù)的總和 = 50005000 通過遞歸 2,前 100000 個整數(shù)的總和 = 21
1 回答

慕桂英546537
TA貢獻(xiàn)1848條經(jīng)驗 獲得超10個贊
你用錯誤的參數(shù)打電話,試著用
static public void main(String [] args){
Recursive r = new Recursive();
System.out.println("By Gussain, Sum of first 100000 integers=" + r.gaussian(10000));
System.out.println("By recurssion 2, Sum of first 100000 integers=" + r.firstNnumber2(10000));
}
添加回答
舉報
0/150
提交
取消