7 תשובות
מה הכוונה מספר הופכי?
שואל השאלה:
^^ מספר הופכי זה נגיד 678 אז 876
או 71 אז 17
אנונימית
בתוך לולאת אמת (while true) תעשי מודולו (%) 10 להעתק של המספר ותשמרי את התוצאה (נקרא לזה final, תגדירי אותו מחוץ ללולאה). תחלקי את המספר המקורי ב10 ותהפכי אותו לint.
תבדקי האם המנה היא 0:
אם זה לא 0: תכפילי את final ב10.
אם זה 0: תצאי מהלולאה (תעשי break).

שכחתי לומר שאת צריכה גם להוסיף את התוצאה כל פעם מהמודלו לסופי.
מספר הופכי זה לא למשל 576 ו 675 זה מספר שהמכפלה שלו עם המספר המקורי היא 1.
כמו למשל: 576 ו1/576.
אבל יכול להיות שהתכוונו מספר הפוך חח
אגב לא הבנתי את מה שרשמת בורקס חציל^^
אתה יכול לשלוח קוד של זה?
כי אני חשבתי שאפשר פשוט לעשות העתק של המספר (כמו שאמרת), לספור כמה ספרות יש במספר (בעזרת לולאת while) ואז ליצור משתנה של חזקה (דוגמה: אם יש לי 3 ספרות במספר, החזקה תהיה 2).
ליצור עוד העתק חחח, ואז לעשות כל פעם מודולו 10 ולהכפיל אותו ב10 בחזקת משתנה החזקה. בכל איטרציה של הלולאה מקטינים את ההעתק ואת החזקה
שואל השאלה:
^^ לא הבנתי מה הכוונה במספר הופכי
אנונימית
לא יודעת איך עושים את זה בפייתון אבל בסי שארפ כן אז אנסה להסביר

הנה הקוד בסי שארפ כדי שתראי גם את הסוגריים מסולסלות -

console.writeline("הכנס מספר");
int number = int.parse(console.readline());
int newnumber = 0;
int digit;
while (number > 0)
}
digit = number%10;
newnumber = newnumber*10+ digit;
number = number /10;
{

console.writeline("newnumber= "+newnumber);


מה שיש בקוד הזה זה בעצם קליטת מספר כלשהו, כל עוד המספר גדול מ0 אז הלולאה ממשיכה לרוץ.

אוקיי אז היא קולטת מספר למשתנה number, ובנתיים יש עוד משתנים. newnumber שהוא שווה ל0, ו- digit.
אז בעצם כל עוד המספר של number גדול מ0 הוא ימשיך לשלב הבא.
נעשה למשל על המספר 234.
234 גדול מ0 לכן זה ממשיך, digit הופך להיות שארית 10 של המספר, שזה בעצם האחדות של המספר אז יהיה 4.
לאחר מכן newnumber הופך להיות הערך של המשתנה שכרגע הוא 0, כפול 10 ועוד האחדות שיצא לנו. אז יצא 4.
ואז number הופך לחילוק המספר בעשר, אז יוצא לנו 23.
ואז שוב עושה את הלולאה מחדש.
23 גדול מ0? ממשיך.
digit הופך שוב לאחדות של המספר, והפעם הוא יהיה 3.
newnumber הופך ל 4(מה שיצא לנו פעם קודמת) כפול 10 ועוד 3 (מה שיצא עכשיו).
אז יוצא לנו 43.
ואז number הופך לחילוק המספר בעשר שוב פעם, ויוצא לנו 2.
2 גדול מאפס? ממשיך.
digit הופך למספר שארית 10, יוצא 2.
newnumber הופך ל- 43 (מה שיצא לנו מקודם) כפול 10 ועוד 2 (מה שיצא לנו עכשיו). אז יוצא לנו 432
number הופך לערך חלקי 10.
יוצא לנו 0. 0 לא גדול מ0 ולכן הלולאה מפסיקה.
ואז לבסוף זה מדפיס את הערך שיצא לנו במשתנה newnumber, שזה 432.

מקווה שעזר (;