כתוב פעולה אשר מקבלת מספר שלם חיובי ומחזירה סכום של ספרה השמאלית ביותר והימנית ביותר.
לא הבנתי איך לכתוב את הספרה השמאלית ביותר?
תודה לעוזרים!
כתוב פעולה אשר מקבלת מספר שלם חיובי ומחזירה סכום של ספרה השמאלית ביותר והימנית ביותר.
לא הבנתי איך לכתוב את הספרה השמאלית ביותר?
תודה לעוזרים!
|
|
אתה מגיע לספרה השמאלית ביותר, ע"י חילוק המספר במספר הספרות שלו פחות אחד, כפול 10.
לדוגמה:
עבור הקלט 52340, אתה מחלק במספר הספרות פחות אחד (יש 5 ספרות, אז פחות אחד זה 4), כפול 10.
כלומר, אתה מחלק ב- 10000.
התשובה לכך היא 5.234 , אך בהנחה שהמספר נקלט למשתנה מסוג integer התשובה תהיה 5.
בפקודה, זה נראה כך:
כאשר Ldigit הוא המשתנה שיכיל את הספרה השמאלית,קוד:Ldigit=num/((length-1)*10);
num הוא המספר, ו- length מכיל את כמות הספרות במספר.
תכירו את שמוליק, אבא קנה לי
הוא אוהב במבה, ביסלי ואת עודד מנשה
נכתב במקור על ידי אושרי
ואיך לקלוט את המשתנה שקולט כמות ספרות במספר?
לא יותר פשוט לחלק כל פעם ב-10 ולשמור את התוצאה וברגע שמחלקים ומקבלים 0 התוצאה השמורה תהיה הסיפרה השמאלית.
יש שתי אפשרויות:
1. לעשות CASTING ל-STRING ואז לקחת את התו האחרון
2. לעשות לולאת WHILE שבתוכה תעשה חלוקה ב-10 למספר, והיא תעצור כשתגיע ל-0 (ואז תיקח את התוצאה האחרונה...)
קוד PHP:public class num
{
static Scanner reader = new Scanner(System.in);
public static void main(String[] args)
{
System.out.println("Enter number");
getSumFirstLast(s.nextInt());
}
public static int getSumFirstLast(int num);
{
int dig = num%10;
while(num>9)
num /= 10;
dig += num;
System.out.println("For the num " + num + "the answer is " + dig);
return dig;
}
}