פורסם 2013 בדצמבר 1811 שנים חברים שלום.נניח ויש לי מערך של איברים מסוג int בגודל size.השאלה שהוטלה עליי היא לכתוב קוד אשר מוצא במערך את המחלק הגבוהה ביותר מבין כל שני אברים במערך.למשל אם המערך הוא 117 95 18.אז המחלק הגבוהה הוא 9 .בניתי כבר פונק' שנקראת gcd אשר מקבלת שתי מספרים ונותנת לי את המחלק הגבוהה מבניהם.והתחלתי לבנות את הקוד כך שיקוץ ברקורסיה על כל המערך.עכשיו הבעיה שלי היא כזו:שאני מריץ את הקוד הבא הוא מחזיר לי שהמחלק הגבוהה הוא 1 .והבעיה נעוצה בכך שהוא לא בודק את המספר 18 עם 117 ז"א איך אני גורם לו אחרי החזרה של הריקורסיה לבדוק גם את הראשון עם האחרון.int largestgcd(int arr[],int size, int index){ int now; if(index==size-1) return 0; now=gcd(arr[index],arr[index+1]); if(now>largestgcd(arr,size,index+1)) return now; return largestgcd(arr,size,index+1);
פורסם 2013 בדצמבר 1811 שנים הפונקצייה לא בודקת את כל האפשרויות ולא רק עבור האיבר הראשון והאחרון. הפונקצייה בודקת רק GCD בין כל 2 איברים צמודים. צריך לחשוב ולכתוב מחדשץ
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.