אין פה עניין של אינדקסים, אין כאן מערך.הרעיון הוא פשוט.
אתה מקבל מהמשתמש איזשהו מספר (N) והמספר הזה יקבע לך את כמות האיברים שאתה צריך לחבר\להחסיר, אולם המספר הזה לא מייצג את כמות האיטרציות בלולאה, אלא נותן לך אינדיקציה מתי אתה מגיע לאיבר האחרון שצריך להוסיף\להחסיר.
בדוגמא שכתובה לך: עבור N=119 אתה צריך להחזיר 3.214
איך אתה מגיע למספר הזה? אתה מחשב אותו בלולאה לפי החוקיות.
בעצם, מבקשים ממך לחשב את המספר פאי (מה שאתה כנראה מכיר כ 3.14 שיש לו שימושים בכל מה שקשור למעגלים). זה מספר אינסופי...מה שאתה מקבל מהמשתמש זה את רמת הדיוק שהוא מעוניין בה... בגלל שזה מספר אינסופי הרי ברור שמתישהו צריך לעצור את החישוב שלו, אחרת תקבל אינסוף ספרות אחרי הנקודה. אז המשתמש נותן לך כקלט את המספר שבעזרתו אתה קובע מתי לעצור את החישוב ולהציג את התוצאה. (אגב, מחשבון עובד בצורה דומה... הוא משתמש בטורים עד כדי דיוק מסוים כדי לחשב את הערך של פאי, e ועוד).
הערה: בדר"כ בטורים מבקשים לחשב טור עד לאיבר מסוים (למשל עד האיבר ה-6), במקרה שלך לא מבקשים ממך לחשב עד איבר מסוים, אלא "מתחכמים" קצת.
למעשה הטור נראה כך:
http://rotter.name/User_files/nor/52a8ee652b1452ff.jpg
כלומר :
עבור N=1:
http://rotter.name/User_files/nor/52a8ef332fdb09c2.jpg
עבור N=3:
http://rotter.name/User_files/nor/52a8f1c63e3e6be2.jpg
עבור N=5:
http://rotter.name/User_files/nor/52a8ef5e30fd4d9a.jpg
מה החוקיות?
1.שים לב שהמספר היחיד שמשתנה הוא המכנה של השבר... כלומר, כאשר המכנה של השבר יהיה המספר שקיבלת מהמשתמש אז אתה תדע לעצור.
2. שים לב שבסדרה הזאת, אין מכנה זוגי. כלומר הקפיצות הן רק במספרים איזוגיים ולכן, אם אתה מקבל מהמשתמש מספר זוגי אתה מחזיר הודעת שגיאה.
האלגוריתם בפסדו-קוד: 1. קלוט מהמשתמש ערך ל N. 2. אם N זוגי או אם N שלילי או אם N=0 החזר שגיאה. 3. הצב ב temp את הערך 1. : זהו משתנה שבכל איטרציה של הלולאה יגדל ב 2 והוא מייצג את מכנה השבר. 4. הצב ב sign את הערך 1. : זהו משתנה שערכו 1 או -1. הערך 1 מסמל חיובי ו -1 שלילי. 5. הצב ב x את הערך 0 : משתנה זה יחזיק את התוצאה. 6. בצע בלולאה: כל עוד temp קטן שווה מ N: 6.1 אם sign=1 אזי: (מבצעים חיבור) 6.1.1 x=x+4/temp 6.1.2 הצב ב sign את הערך -1. 6.2 אחרת, (כלומר sign שלילי אז נבצע חיסור) 6.2.1 x=x-4/temp 6.2.2 הצב ב sign את הערך 1. 6.3 הגדל את temp ב 2. 7. הדפס את x.
|
הסבר: באלגוריתם הזה, הלולאה תעצור כאשר temp=N. מובטח לנו שזה יקרה מתישהו כי N בהכרח איזוגי חיובי (אחרי בדיקת הקלט בסעיף 2) ו temp מתחיל מ 1 וגדל בכל סיבוב ב 2, כך ש temp תמיד יהיה מספר איזוגי.
כלומר,
עבור N=1 נבצע רק פעם אחת את הלולאה ונקבל:
עבור N=3 נבצע את הלולאה פעמיים ונקבל:
עבור N=5 נבצע את הלולאה 3 פעמים ונקבל:
וכך הלאה....
קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.