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

בעיה בתרגיל ברקורסיה ב-c


mritay

Recommended Posts

שלום,

אני צריך לבנות קוד להדפסת קוד גריי בצורה רקורסיבית (ללא שימוש בלולאות)

מבחינת הגבלים: אסור להשתמש במשתנים סטטיים ובלולאות. מבחינת ספריות, רק stdio.

הרעיון אותו אני צריך לממש הוא:

עוברים מקוד גריי של 1-n ביטים לקוד גרי של n ביטים באופן הבא:

1. הופכים את סדר האיברים בקוד גריי של n-1 ביטים מהסוף להתחלה.

2. משרשרים את הרשימה המתקבלת מסעיף 1 אחרי הרשימה של קוד גריי של n-1 ביטים.

3. עבור החצי הראשון של איברי הרשימה שהתקבלה מסעיף 2 (האיברים הראשונים של רשימה זו) משרשרים לתחילתם את הספרה 0.

4. עבור החצי השני של איברי הרשימה שהתקבלה מסעיף 2 (האיברים האחרונים של רשימה זו) משרשרים לתחילתם את הספרה 1.

5. הרשימה שמתקבלת אחרי סעיף מספר 4 היא קוד גריי של n ביטים.

יצרתי כבר את הפונ' שמחשבת חזקה, שמייצרת את המראה של העמודה ומשרשרת אותה בהמשך המערך,

את הפונ' שמיצרת עמודה חדשה, ואת הפונ' שמדפיסה הכל.

אבל אני לא מצליח לחבר את הכל ביחד.

אשמח לעזרה בנושא (בצורה של הכוונה, רעיון אלגוריתמי טיפה יותר מפורט וכו')

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

טוב, הרוב עובד חוץ מהפונקציה שאמורה ליצור את השיקוף של חצי העמוה העליונה לתחתונה.

זה הקוד שלי:


void mirror_col (int arr[][10], int n, int c, int i)
{/* gets a matrix column, size and index, and makes a mirror image of it's columns in the same matrix column */
if (n>i)
{
arr[n-1][c]=arr[i][c];
mirror_col(arr,n-1,c,i+1);
}
}

void mirror (int arr[][10], int n, int i)
{/* gets a matrix column, size and index, and makes a mirror image of it's columns in the same matrix column */
int c=0;
i=0;
if (c<n)
{
mirror(arr,n-1,i+1);
mirror_col(arr,n,c+1,i);
}
}

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

ארכיון

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

×
  • צור חדש...