מישהו יודע מה זה עושה? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מישהו יודע מה זה עושה?


WizMaster

Recommended Posts

נתקלתי בקוד הזה באחד הדפים שלי בבית, מישהו יודע מה הפונקציה מבצעת?

int f(int q, int p)
{
if(q==p)
return p;
else if(q<p)
return f(q,p-1);
else return f(p,q-p);
}

אני יודע שזה קצת כאב ראש אבל אין לי מושג מה היא עושה, לי יצא משהו חסר משמעות, לכם?

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

נתקלתי בקוד הזה באחד הדפים שלי בבית, מישהו יודע מה הפונקציה מבצעת?

int f(int q, int p)
{
if(q==p)
return p;
else if(q<p)
return f(q,p-1);
else return f(p,q-p);
}

אני יודע שזה קצת כאב ראש אבל אין לי מושג מה היא עושה, לי יצא משהו חסר משמעות, לכם?

מוזר. הקטע קוד הזה נראה באמת חשוד :)

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

נתקלתי בקוד הזה באחד הדפים שלי בבית, מישהו יודע מה הפונקציה מבצעת?

int f(int q, int p)
{
if(q==p)
return p;
else if(q<p)
return f(q,p-1);
else return f(p,q-p);
}

אני יודע שזה קצת כאב ראש אבל אין לי מושג מה היא עושה, לי יצא משהו חסר משמעות, לכם?

מוזר. הקטע קוד הזה נראה באמת חשוד :)

LOL, גם לי! הוא מסתבך בתוך עצמו...

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

פשש, רקורסיה..

צודק! :D איך לא חשבתי על זה...!

עכשיו, מעניין מה הפונקציה הרקורסיבית עושה....

מה ? באמת לא שמת לב שזו רקורסיה ? מספיק שאתה רואה שהוא קורא לעצמו - וזו רקורסיה !

אתה יודע כמה זמן לא נגעתי ב-C?

נהייתי חלוד(למרות שזה דיי דומה בשאר השפות...) ;D

אז מה זה עושה? יש לזה משמעות או שזה סתם קורא לעצמו עד שזה מחזיר את P?

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

ממה שאני מבין התוכנית הזאת פשוט רושמת את סידרת המספרים בין q ל-p.

כאשר לכל רקורסיה חייב להיות תנאי עצירה והוא q=p.

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

נראה לי זו רקורסיה שהיתה אמורה לעשות משהו יותר מתוחכם, ולא נכתבה כמו שצריך.

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

ארכיון

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

×
  • צור חדש...