9 תשובות
הטריק זה שאת יכולה להשתמש במודולו 10 בשביל לקבל את הספרה הכי קטנה ובחילוק ב10 בשביל "להוריד" את הספרה הכי קטנה
שואל השאלה:
אתה יכול לכתוב את זה?
smallest = 0;
smallest = num % 10;
num / 10; אבל למה להשוות עכשיו?
אתה יכול לכתוב את זה?
smallest = 0;
smallest = num % 10;
num / 10; אבל למה להשוות עכשיו?
אנונימית
אני בכוונה לא כותב את כל הפתרון, תשחקי עם זה ותביני לבד
using system;
class largestdigitfinder
{
static void main()
{
console.write("enter a number: ");
int number = int.parse(console.readline());
console.writeline($"the largest digit in {number} is {findlargestdigit(number)}.");
}
static int findlargestdigit(int number)
{
int largestdigit = 0;
number = math.abs(number); // handle negative numbers
while (number > 0)
{
int digit = number % 10;
if (digit > largestdigit)
{
largestdigit = digit;
}
number /= 10;
}
return largestdigit;
}
}
class largestdigitfinder
{
static void main()
{
console.write("enter a number: ");
int number = int.parse(console.readline());
console.writeline($"the largest digit in {number} is {findlargestdigit(number)}.");
}
static int findlargestdigit(int number)
{
int largestdigit = 0;
number = math.abs(number); // handle negative numbers
while (number > 0)
{
int digit = number % 10;
if (digit > largestdigit)
{
largestdigit = digit;
}
number /= 10;
}
return largestdigit;
}
}
שואל השאלה:
@ בלוגה הישראלי סיבכת ברמות אבל תודה, אני רוצה את הדרך של הראשון בבקשה
@ בלוגה הישראלי סיבכת ברמות אבל תודה, אני רוצה את הדרך של הראשון בבקשה
אנונימית
שואל השאלה:
@משתמש סטיפס בצבע כתום בוא לפה!
@משתמש סטיפס בצבע כתום בוא לפה!
אנונימית
שואל השאלה:
לא הבנתי מה עשית בשורה האחרונה
לא הבנתי מה עשית בשורה האחרונה
אנונימית
בעיקרון עזבי רקורסיה והאמת היא שמה שבלוגה הישראלי עשה זה בדיוק מה שהראשון הציע לך
נגיד ואת מקבלת את המספר 1234 ותעברי ספרה ספרה את תוכלי למצוא את ההכי גדול מבין כל הספרות.
מודולו 10 מביא לך את הספרה הכי ימנית
ובחלקי 10 את מורידה את הספרה הימנית מהמספר, נגיד תנסי לחלק את 1234 ב10 יוצא 123.4 אבל בגלל שהמשתנה הוא int אז זה יוצא 123
עכשיו את צריכה להמשיך את הפעולה הזאת עד שאין יותר במה לחלק
בגלל זה while num > 0
נגיד ואת מקבלת את המספר 1234 ותעברי ספרה ספרה את תוכלי למצוא את ההכי גדול מבין כל הספרות.
מודולו 10 מביא לך את הספרה הכי ימנית
ובחלקי 10 את מורידה את הספרה הימנית מהמספר, נגיד תנסי לחלק את 1234 ב10 יוצא 123.4 אבל בגלל שהמשתנה הוא int אז זה יוצא 123
עכשיו את צריכה להמשיך את הפעולה הזאת עד שאין יותר במה לחלק
בגלל זה while num > 0
אפשר לומר שזה בוודאות מתקדם מידי בשבילה
וגם בעיקרון יש דברים שיותר יעילים ברקורסיה אבל יש גם דברים שהם מאולצים ברקורסיה.
עד עכשיו אני נתקלתי בבעיה שאם אתה יכול לפתור ברקורסיה, אפשר גם לפתור עם לולאות למעט אלגוריתמים מסובכים שאין להם פתרון בלי רקורסיה
גם לפעמים זה נראה יותר "נעים" לעין לעשות את זה עם לולאה למרות שזה מאריך את הקוד בכמה שורות וכאלה
וגם בעיקרון יש דברים שיותר יעילים ברקורסיה אבל יש גם דברים שהם מאולצים ברקורסיה.
עד עכשיו אני נתקלתי בבעיה שאם אתה יכול לפתור ברקורסיה, אפשר גם לפתור עם לולאות למעט אלגוריתמים מסובכים שאין להם פתרון בלי רקורסיה
גם לפעמים זה נראה יותר "נעים" לעין לעשות את זה עם לולאה למרות שזה מאריך את הקוד בכמה שורות וכאלה