פתח ויישם אלגוריתם המקבל כקלט מספר שלם חיובי,ומציג כפלט את:
א.מספר הספרות של המספר
ב.סכום הספרות
ג.מכפלת הספרות
לא הצלחתי את ב' וג',תעזרו לי!!
תודה.
פתח ויישם אלגוריתם המקבל כקלט מספר שלם חיובי,ומציג כפלט את:
א.מספר הספרות של המספר
ב.סכום הספרות
ג.מכפלת הספרות
לא הצלחתי את ב' וג',תעזרו לי!!
תודה.
נערך לאחרונה על ידי ron93; 06-08-2008 בשעה 16:51.
|
|
אם הצלחת לספור כמה ספרות, כנראה עשית את זה בעזרת משתנה מונה (counter)
אז במקום להוסיף אחד למונה כל פעם, פשוט תעשה משתנה שאחראי על הסכום ותאפס אותו בהתחלה.
בתוך הלולאה פשוט כל פעם לוקחים את הספרה שפירקת אחרונה ומוסיפים אותה למשתנה כך:
כאשר sum זה משתנה הסכום, ו digit הוא הספרה הנוכחית.קוד:sum=sum+digit;
כנ"ל לגבי מכפלה.
אם אתה עדיין מסתבך תגיד...
תכירו את שמוליק, אבא קנה לי
הוא אוהב במבה, ביסלי ואת עודד מנשה
נכתב במקור על ידי אושרי
אבל לא הבנתי איך אני קולט את הספרה האחרונה שפירקתי?ואתה יכול בבקשה יותר לפרט איך עושים?
יש לך מספר, וכשאתה עושה:
זה בעצם מחלק את המספר ב- 10, ונותן לך את השארית שהיא בעצם הספרה הכי ימנית.קוד:digit=num%10;
עכשיו אתה מחלק את המספר ב- 10:
כדי להפטר מהספרה האחרונה, ושוב לחזור בלולאה כדי לפרק את הספרה הבאה אחריה, עד שהמספר שווה ל- 0קוד:num=num/10;
(זה קורה כשאין יותר מה לחלק ב- 10, כלומר אין יותר ספרות.)
אם אתה רוצה למצוא את סכום הספרות או מכפלה:
חשוב שהמשתנה המסכם יהיה מאופס בהתחלה......קוד:sum=sum+digit; //לסכום sum=sum*digit; //למכפלה
תכירו את שמוליק, אבא קנה לי
הוא אוהב במבה, ביסלי ואת עודד מנשה
נכתב במקור על ידי אושרי
תראה איך עשיתי:
זה נכון?קוד:import java.util.*; class targil68 { static Scanner reader=new Scanner(System.in); public static void main(String[] args) { System.out.println("Enter number"); int num,digCount=0,sum=0,digit,mult=1; num=reader.nextInt(); digit=num%10; if(num==0) digCount=1; while(num!=0) { digit=num%10; num=num/10; digCount++; sum=sum+digit; mult=mult*digit; System.out.println(digCount); System.out.println(sum); System.out.println(mult); } } }
נגיד אני קולט 17 הוא מראה לי 1,7,7,8,7 שני המס' האחרונים זה סכום ומכפלה אבל מה עם כל השאר?
זה מראה את הספרה 7 פעמיים בגלל שכשפירקת אותה מחוץ ללולאה, שכחת לחלק את המספר ב- 10,
ואז בתוך הלולאה פירקת שוב את אותה ספרה.
החלק של פירוק הספרה מחוץ ללואה ממש מיותר.
את ההדפסות של המשתנים אני גם מציע לך לשים אחרי הלולאה, זה סתם מיותר להדפיס כל שלב של הלולאה,
ובסופו של דבר זה פוגע ביעילות התוכנית.
נערך לאחרונה על ידי B1ackSn0w; 07-08-2008 בשעה 12:09.
תכירו את שמוליק, אבא קנה לי
הוא אוהב במבה, ביסלי ואת עודד מנשה
נכתב במקור על ידי אושרי