עבור לתוכן

תרגיל ב לולאות :מציאת פולינדרום בעל 9 תווים מתוך מספר כלשהו בשפת C

Featured Replies

פורסם

שלום

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

אין לי מושג איך לגשת לזה בכלל

בתרגיל מותר לי להשתמש אך ורק בלולאות FOR וWHILE ובתנאי IF

תודה לכל העוזרים

פורסם

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

פורסם
  • מחבר

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

פורסם

אם אתה יודע שהפלינדרום צריך להיות בעל 9 תווים, זה ממש פשוט.

אם מדובר במערך למשל, אתה פשוט עובר על המערך מההתחלה ובמקביל עובר בכיוון ההפוך במקום i+8. מכאן תחשוב על מה עושים כשנתקעים,

איך ממשיכים ואיך לא חורגים מגבולות המערך.

פורסם

1. תפרק את המספר למערך.

2. צורך לולאה מכוננת מרמה 2 (לולאה בתוך לולאה).

פורסם

מקוננת.

לא בדיוק עזרת לו עם זה ;)

פורסם
  • מחבר

כן אבל מה קורה שנמצא הפולינדרום איפשהו באמצע יותר קרוב לצד אחד ומה בדיוק אני משווה שם בכל המערך

עם אפשר לכתוב איזה דוגמה ליצירת מערך רק עם לולאות ותנאים אני יודה לכם מאוד

פורסם

אתה תחשוב בעצמך. קרא שוב מה שכתבתי ותבין שהכיוון שלי לא מתבצע סימטרית.

פורסם
  • מחבר

זה קצת בעיה כשאי אפשר להשתמש במערכים אלה רק בלולאות כלומר אוסף הפעולות מאוד בסיסי רק WHILE ,DO WHILE ,FOR ,IFו IF ELSE

פורסם

אז איך אתה מקבל את המספר כקלט? גם String הוא מערך...

פורסם
  • מחבר

אני מקבל אותו הצורה של מספר בודד המורכב מעד 9 ספרות

פורסם

כלומר הקלט שלך הוא משתנה בודד של unsigned long עד 999,999,999? והפלינדרום יכול להיות מאיזה אורך?

פורסם
  • מחבר

יכול להיות בכל אורך רק שאם יש שני פולינדרומים זהים בתוך המספר הוא לוקח את הימני

  • 1 שנה מאוחר יותר...
פורסם

עבור מערך חד-ממדי של מספרים שלמים בן N תאים (עבור N שהינו קבוע של התכנית) נאמר כי תא אחד במערך מצביע על תא שני במערך אם התא האחד מכיל את מספרו של התא השני.

לדוגמה: במערך הבא

[table][tr] [td]

3

[/td] [td]

6

[/td] [td]

17

[/td] [td]

5

[/td] [td]

4

[/td] [td]

5

[/td] [td]

2

[/td] [/tr] [tr] [td]

6#

[/td] [td]

5#

[/td] [td]

4#

[/td] [td]

3#

[/td] [td]

2#

[/td] [td]

1#

[/td] [td]

0#

[/td] [/tr][/table] התא 0# מצביע על התא 2#, התא 1# מצביע על התא 5#, אך התא 4# אינו מצביע על כל תא במערך (שכן במערך אין תא 17#).

לולאה במערך כנ"ל היא סדרה של תאים כך שהראשון מצביע על השני, השני על השלישי, וכן הלאה, עד לתא האחרון בסדרה שמצביע על התא הראשון בלולאה. לדוגמה: במערך הנ"ל התאים 3#, 5#, 6# מהווים לולאה. שימו לב כי גם התא 1# מצביע על התא 5#, אולם התא 1# אינו נכלל בלולאה, שכן אין עליו הצבעה על-ידי תא אחר בלולאה. כמו כן התא 0# מצביע על התא 2# אשר מצביע על התא 4#, אולם גם סדרת תאים זו אינה מהווה לולאה שכן התא 4# אינו מצביע על התא 0#.

פורסם

למה הקפצת ת'רד בן שנה עם הודעה לא קשורה (ובלי מטרה)?

ננעל.

קרא בבקשה את חוקי הפורום.

ארכיון

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

דיונים חדשים