שאלה בC רקורסיה - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה בC רקורסיה


barhanin87

Recommended Posts

חברים שלום.

נניח ויש לי מערך של איברים מסוג 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);

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...