出于培訓目的,我嘗試撰寫一個程式來計算給定數字在給定整數陣列中出現的頻率。然后檢查數字是偶數還是奇數。不使用任何匯入或回圈。我試圖遞回解決它。例如:
(3, new int[]{3,3,4,5,3,3,2,1})
有 4 個三,所以程式應該檢查 4 是偶數還是奇數。
經過幾天的編碼而不是作業代碼,我決定在這里問:任何解決方案?
public static int evenNumberOf(int num, int[] numarr) {
int i = 0 ;
int counter = 0;
if(a == null || a.length == 0) {
return false;
} else {
if(a[i] == a.length -1 ) {
if(counter % 2 == 0) {
System.out.println("true");
return true;
} else System.out.println("false");
return false;
} else {
if(a[i] == n) {
counter ;
i ;
return evenNumberOf(n,a) ;
} else {
i ;
return evenNumberOf(n,a) ;
uj5u.com熱心網友回復:
暗示:
如果您嘗試遞回地執行此操作,則可以通過分而治之快速完成此操作。將陣列分成兩半,計算每個子陣列并合并結果。確保正確處理空陣列/單元素陣列的基本情況。
uj5u.com熱心網友回復:
嘗試這個:
public static void main(String[] args) throws Exception{
System.out.println(evenNumberOf(2, 0, new int[]{2,0,3,7,6,11,1,2}, 0));
}
//arr should not be empty, index and count >= 0
public static int evenNumberOf(int num, int index,int[]numarr, int count) {
if(index >= numarr.length) return count;
if(numarr[index] == num ) {
count ;
}
return evenNumberOf(num, index, numarr, count);
}
您可以添加一個輔助方法來使呼叫更簡單:
public static int evenNumberOf(int num, int[] numarr) {
return evenNumberOf(num, 0, numarr,0);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370734.html
上一篇:我可以使這個遞回與負數一起作業嗎
下一篇:查找字串是否有效的遞回方法
