ABA


"עזרה - שאלה ב C - רקורסיה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10206 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10206
מזרחית_בנשמה

   00:01   28.12.10   
אל הפורום  
  עזרה - שאלה ב C - רקורסיה  
 
   כתבו פונקציה רקורסיבית:
bool subsetSum(int numbers, int size, int sum);
הפונקציה מקבלת מערך של מספרים, את גודלו, ומספר נוסף, sum
הפונקציה תחזיר true אם"ם קיימת איזושהי תת-קבוצה של מספרים מתוך המערך
(לאו דווקא רצופה)
שסכומה הוא sum
למשל, אם [numbers = [1, 5, 3, 9, 10
ו 14 = sum
הפונקציה תחזיר true היות ש 14 = 9 + 5


מישהו יכול להסביר איך לעשות את זה??


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  זה אמור לעבוד, אולי אפשר יותר יעיל אבל אני זז לישון D-KinG 28.12.10 00:46 1
     עזרת לי מאוד! מזרחית_בנשמה 28.12.10 21:44 2

       
D-KinG
חבר מתאריך 8.6.02
3490 הודעות
   00:46   28.12.10   
אל הפורום  
  1. זה אמור לעבוד, אולי אפשר יותר יעיל אבל אני זז לישון  
בתגובה להודעה מספר 0
 
   רשום עם סוגריים רגילות כי יש בעיה עם מרובעות


bool subsetSum(int* numbers, int size, int sum)
{
if (size==0)
return false;
if (sum==numbers(size-1))
return true;
return subsetSum(numbers, size-1, sum-numbers(size-1)) || subsetSum(numbers, size-1, sum);
}

תנאי עצירה, מערך בגודל 0, מחזירים שקר
אחרת אם האיבר האחרון במערך הוא SUM מצאנו,
אם SUM הוא לא האחרון במערך אז נבדוק על מערך בלי האיבר האחרון:
אם יש בו את SUM פחות האיבר האחרון, סימן שמצאנו כי נוסיף את האיבר האחרון ונקבל את SUM
אבל יכול להיות שהאיבר האחרון מפריע לסכום אז נחשב גם על מערך קטן יותר בלעדיו
ובסוף נעשה "או" ביניהם כי אם אחד הצליח זה מספיק..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
מזרחית_בנשמה

   21:44   28.12.10   
אל הפורום  
  2. עזרת לי מאוד!  
בתגובה להודעה מספר 1
 
   תודה רבה אחי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net