logo

الرقم السحري في جافا

في البرمجة أ الرقم السحري هي قيمة رقمية يتم استخدامها مباشرة في التعليمات البرمجية. يتم استخدامه لأغراض تحديد الهوية. في هذا القسم سنناقش ما هو الرقم السحري و كيف يمكننا العثور على رقم سحري من خلال برنامج جافا.

الرقم السحري في البرمجة

أ الرقم السحري هي قيمة رقمية مرمزة (قيمة نصية في بعض الحالات) في الكود والتي قد تتغير في مرحلة لاحقة. يبدو الأمر اعتباطيًا وليس له سياق أو معنى. ومن الصعب التحديث. على سبيل المثال:

 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)

لماذا يجب تجنب الأرقام السحرية؟

لا يجب أن نستخدم الأرقام السحرية في البرمجة لأنها تؤدي إلى نمط مضاد يجعل من الصعب فهم الكود وصيانته. كما أنه يخفي النية لذلك يجب تجنب استخدام الأرقام السحرية. التغييرات في الكود هي أيضًا أكثر صعوبة.

q1 q2 q3 q4

يوصى باستخدام الثابت لتمثيل القيم بدلاً من استخدام الأرقام السحرية. يعمل على تحسين إمكانية قراءة التعليمات البرمجية ويوفر تعديلًا سهلاً في التعليمات البرمجية.

الرقم السحري في الرياضيات

في الرياضيات، إذا كان مجموع أرقامه بشكل متكرر يتم حسابه حتى رقم واحد. إذا كان الرقم المفرد هو 1 فإن الرقم يسمى أ الرقم السحري . إنه مشابه تمامًا لـ رقم سعيد .

على سبيل المثال، 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:

com.mylivecricket
 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 هو رقم سحري وأيضا رقم سعيد.