logo

מספר קסם ב-Java

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

מספר קסם בתכנות

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

 const num = 74; //where 2 is hard-coded const number = num / 2; //it should be properly defined 

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

מה מייצג גוגל
  • קבצי PDF מתחילים בטקסט הקסום %PDF -> Hex (25 50 44 46)
  • קבצי PNG מתחילים בטקסט הקסם %PNG -> Hex (25 50 4E 47)

מדוע כדאי להימנע ממספרי קסם?

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

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

מספר קסם במתמטיקה

במתמטיקה, אם סכום ספרותיו באופן רקורסיבי מחושב עד ספרה אחת. אם הספרה החד-ספרתית היא 1 אז המספר נקרא a מספר קסם . זה די דומה ל מספר שמח .

לדוגמה, 325 הוא מספר קסם כי סכום הספרות שלו (3+2+5) הוא 10, ושוב נסכם את התוצאה (1+0), נקבל ספרה בודדת (1) כתוצאה מכך. לפיכך, המספר 325 הוא מספר קסם.

כמה מספרי קסם אחרים הם 1234, 226, 10, 1, 37, 46, 55, 73 וכו' .

שימו לב שאם מספר הוא מספר קסם אז כל השילובים האפשריים של המספר יהיו גם מספרי הקסם.

לדוגמה, 532, 253, 325, 235, 352, 523 סכום הספרות של כל המספרים נותן 10 ושוב נסכם את התוצאה (1+0), נקבל חד-ספרה כלומר 1. לפיכך, אנו יכולים לומר שגם מספר הקסם וצירופיו הם קסם.

כיצד לפתוח אפליקציות נסתרות באנדרואיד

בואו ליישם את ההיגיון הנ'ל בתוכנת Java ונבדוק אם המספר הנתון הוא קסם או לא.

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

MagicNumberExample1.java

 import java.util.Scanner; public class MagicNumberExample1 { public static void main(String args[]) { int n, remainder = 1, number, sum = 0; //creating a constructor of the Scanner class Scanner sc = new Scanner(System.in); System.out.print('Enter a number you want to check: '); //reading an integer form the user n = sc.nextInt(); //assigning the entered number in the variable num number = n; //outer while loop while (number > 9) //while(number > 0 || sum > 9) { //inner while loop while (number > 0) { //determines the remainder remainder = number % 10; sum = sum + remainder; //divides the number by 10 and removes the last digit of the number number = number / 10; } number = sum; sum = 0; } if (number == 1) { System.out.println('The given number is a magic number.'); } else { System.out.println('The given number is not a magic number.'); } } } 

פלט 1:

 Enter a number you want to check: 325 The given number is a magic number. 

פלט 2:

 Enter a number you want to check: 891 The given number is a magic number. 

בואו נראה היגיון נוסף לבדיקת מספר הקסם.

MagicNumberExample2.java

 import java.util.Scanner; public class MagicNumberExample2 { public static void main(String args[]) { Scanner scanner = new Scanner(System.in); System.out.print('Enter any number to check: '); //reading an iteger from the user int number = scanner.nextInt(); if(magicNumber(number)) System.out.println(number +' is a magic number.'); else System.out.println(number +' is not a magic number.'); } //user-defined method to check the number is magic or not public static boolean magicNumber(int number) { if( ((number - 1) % 9) == 0) return true; else return false; } } 

פלט 1:

 Enter any number to check: 73 73 is a magic number. 

פלט 2:

פקודות לינוקס
 Enter any number to check: 671 671 is not a magic number. 

מספר קסם מול מספר שמח

ההבדל היחיד בין קֶסֶם מספרים ו שַׂמֵחַ מספרים הוא שבמספר קסם אנו מסכמים את כל הספרות של המספר באופן רקורסיבי עד שנקבל ספרת אות כלומר 1. בעוד ב שַׂמֵחַ מספר, אנו מחשבים באופן רקורסיבי את סכום ריבוע הספרות עד שנקבל ספרה בודדת 1. אם תהליך זה מביא למחזור אינסופי של מספרים המכילים 4, אז המספר נקרא אוּמלָל מספר. למשל, עלינו לבדוק 19 הוא מספר קסם ומאושר או לא.

דוגמה למספר קסם דוגמה למספר שמח
We have to check n = 19 1 + 9 = 10 1 + 0 = <strong>1</strong> 
We have to check n=19 1<sup>2</sup>+ 9<sup>2</sup> = 1 + 81 = 82 8<sup>2</sup>+ 2<sup>2</sup> = 64 + 4 = 68 6<sup>2</sup>+ 8<sup>2</sup> = 36 + 64 = 100 1<sup>2</sup>+ 0<sup>2</sup>+0<sup>2</sup> = 1 + 0 + 0 = <strong>1</strong> 

בשני המקרים, אנחנו מקבלים 1 . מכאן, המספר 19 הוא מספר קסם וגם מספר שמח.