פורסם 2005 באוקטובר 1620 שנים זה עובד זה בטוח השאלה אם עשיתי את זה בצורה הכי יעילה שאפשר... בספר שלי רשום שזאת שאלה מבגרות אז זה חשוב לי... זאת השאלה:נתונים שלושת המערכים F,G ו-H, כל אחד מהם באורך 30 ואיבריהם מקיימים:F(1) =1, F(2) =1F(n=F(n-1)+F(n-2)עבור כל n המקיים:n>2G(1)=1, G(2)=1, G(3)=2G(n) = G(n-1) + G(n-2) + G(n-3)עבור כל n המקיים: n>3H(n) = G(n)-F(n)עבור כל n טבעי.יישם אלגוריתם שיבנה את שלושת המערכים, וידפיס את רשימת הערכים של n (רשימת האינדקסים) אשר עבורם H(n) הוא אי-זוגי.ףדוגמא:F(4)=3, G(4)=4 ולכן H(4)=11 הוא מספר אי זוגי ולכן המציין 4 שייך לרשימת הערכים המבוקשת.זה הקוד שאני רשמתי:Program Array_Bagrut;Uses Crt;Const Size = 30;Var H,G,F: Array[1..Size] Of Integer; n: Integer;Begin ClrScr; {F Array} F[1] := 1; F[2] := 1; For n:=3 to Size do F[n] := F[n-1]+F[n-2]; {G Array} G[1] := 1; G[2] := 1; G[3] := 2; For n:=4 to Size do G[n] := G[n-1] + G[n-2] + G[n-3]; {H Array} For n:=1 to Size do H[n] := G[n] - F[n]; For n:=1 to Size do Begin If H[n] mod 2<>0 Then WriteLn('n = ', n); End; WriteLn; WriteLn('Press any key to quit.'); ReadKey;End.
פורסם 2005 באוקטובר 1620 שנים כן זה הכי יעיל שיכול להיות. אם אתה רוצה לעשות שינוי קטן, שמבחינת סדר זמן ריצה הוא לא משנה, אבל מעשית הוא יכול לשנות זה לצרף את חישוב הסדרה האחרונה להדפסה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.