25-02-2012, 20:40
|
|
|
חבר מתאריך: 11.02.04
הודעות: 16,543
|
|
זה אלמנטרי.
אתה בכל פעם להחליט החלטה "גורלית", האם איבר באינדקס כלשהו הולך לסל א, או לסל ב.
קוד:
public static boolean what(int[] arr, int salA, int salB,int i,int diff){
if (i==arr.length-1){
if (Math.abs(salA-salB)==diff) return true;
return false;
}
return what(arr,salA+arr[i],salB,i++,diff) ||
what(arr,salA,salB+arr[i],i++,diff);
}
לא בדקתי, אבל זה אמור לעשות את העבודה..
הקריאה במקרה שלך לדוגמא
what(arr,0,0,2,3)
*שמתי לב לדרישה(המטופשת) שאין לעשות פנק עזר.. עכשיו אתן לך פתרון חלופי..
קוד:
boolean checking (int[] arr, int size, int index, int number){
if (index==size-1){
if (number!=0) return false;
return true;
}
return checking (arr,size,index++,number+arr[index])||
checking (arr,size,index++,number-arr[index]);
}
נערך לאחרונה ע"י The_Equivocator בתאריך 25-02-2012 בשעה 21:03.
|