logo

Magiškas skaičius Java

Programuojant, a magiškas skaičius yra skaitmeninė reikšmė, kuri naudojama tiesiogiai kode. Jis naudojamas identifikavimo tikslais. Šiame skyriuje aptarsime kas yra stebuklingas skaičius ir kaip galime rasti stebuklingą skaičių per Java programą.

Magiškas skaičius programuojant

A magiškas skaičius yra sunkiai užkoduota skaitinė reikšmė (kai kuriais atvejais teksto reikšmė) kode, kuri gali pasikeisti vėliau. Tai atrodo savavališka ir neturi jokio konteksto ar prasmės. Sunku atnaujinti. Pavyzdžiui:

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

Tokios konstantos naudojimas gali padėti mums atskirti failus tarp daugelio kitų failų formatų. Pavyzdžiui:

java bandyti gaudyti
  • PDF failai prasideda magišku tekstu %PDF -> Hex (25 50 44 46)
  • PNG failai prasideda magišku tekstu %PNG -> Hex (25 50 4E 47)

Kodėl reikėtų vengti stebuklingų skaičių?

Programuodami neturėtume naudoti stebuklingų skaičių, nes tai sukelia antipatterną, dėl kurio kodą sunku suprasti ir prižiūrėti. Tai taip pat slepia ketinimą, todėl reikėtų vengti naudoti stebuklingus skaičius. Kodo pakeitimai taip pat yra sunkesni.

Vertėms pavaizduoti rekomenduojama naudoti konstantą, o ne magiškus skaičius. Tai pagerina kodo skaitomumą ir leidžia lengvai keisti kodą.

Magiškas skaičius matematikoje

Matematikoje, jei jos skaitmenų suma rekursyviai skaičiuojamas iki vieno skaitmens. Jei vienas skaitmuo yra 1, tada skaičius vadinamas a magiškas skaičius . Jis yra gana panašus į laimingas skaičius .

Pavyzdžiui, 325 yra stebuklingas skaičius, nes jo skaitmenų suma (3+2+5) yra 10, ir vėl susumavus rezultatą (1+0), gauname vienženklį skaitmenį (1). Taigi skaičius 325 yra magiškas skaičius.

Kai kurie kiti stebuklingi skaičiai yra 1234, 226, 10, 1, 37, 46, 55, 73 ir tt .

Atminkite, kad jei skaičius yra stebuklingas skaičius, visi galimi skaičių deriniai taip pat bus stebuklingi skaičiai.

Pavyzdžiui, 532, 253, 325, 235, 352, 523 visų skaičių skaitmenų suma duoda 10 ir vėl susumavus rezultatą (1+0), gauname vienaženklį skaičių, t.y. 1. Vadinasi, galime pasakyti kad stebuklingas skaičius ir jo deriniai taip pat yra stebuklingi.

jei kitaip jei kitaip jei java

Įdiegkime minėtą logiką Java programoje ir patikrinkime, ar duotas skaičius yra stebuklingas, ar ne.

„Java Magic Number“ programa

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 išvestis:

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

2 išvestis:

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

Pažiūrėkime kitą logiką, kaip patikrinti stebuklingą skaičių.

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 išvestis:

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

2 išvestis:

java eilutė
 Enter any number to check: 671 671 is not a magic number. 

Magiškas skaičius prieš laimingą skaičių

Vienintelis skirtumas tarp magija skaičiai ir laimingas skaičiai yra tai, kad stebuklingame skaičiuje mes rekursyviai sumuojame visus skaičiaus skaitmenis, kol gauname signalo skaitmenį, ty 1. laimingas skaičių, rekursyviai apskaičiuojame skaičių kvadrato sumą, kol gauname vieną skaitmenį 1. Jei šio proceso rezultatas yra begalinis skaičių ciklas, kuriame yra 4, tada skaičius vadinamas nelaimingas numerį. Pavyzdžiui, turime patikrinti 19 yra magiškas ir laimingas skaičius, ar ne.

Magiško skaičiaus pavyzdys Laimingo skaičiaus pavyzdys
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> 

Abiem atvejais gauname 1 . Vadinasi, skaičius 19 yra stebuklingas skaičius ir laimingas skaičius.