logo

Maaginen numero Javassa

Ohjelmoinnissa a maaginen numero on numeerinen arvo, jota käytetään suoraan koodissa. Sitä käytetään tunnistamiseen. Tässä osiossa keskustelemme mikä on maaginen numero ja kuinka löydämme maagisen numeron Java-ohjelman kautta.

Maaginen numero ohjelmoinnissa

A maaginen numero on kovakoodattu numeerinen arvo (joissain tapauksissa tekstiarvo) koodissa, joka voi muuttua myöhemmässä vaiheessa. Se näyttää mielivaltaiselta, eikä sillä ole kontekstia tai merkitystä. Sitä on vaikea päivittää. Esimerkiksi:

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

Tällaisen vakion käyttäminen voi auttaa meitä erottamaan tiedostot monista muista tiedostomuodoista. Esimerkiksi:

  • PDF-tiedostot alkavat maagisella tekstillä %PDF -> Hex (25 50 44 46)
  • PNG-tiedostot alkavat maagisella tekstillä %PNG -> Hex (25 50 4E 47)

Miksi maagisia numeroita tulisi välttää?

Meidän ei pitäisi käyttää taikalukuja ohjelmoinnissa, koska se johtaa anti-kuvioon, joka tekee koodista vaikea ymmärtää ja ylläpitää. Se myös piilottaa tarkoituksen, joten maagisten numeroiden käyttöä tulisi välttää. Koodin muutokset ovat myös katkerampia.

kuplalajittelu

On suositeltavaa käyttää vakiota arvojen esittämiseen maagisten numeroiden sijaan. Se parantaa koodin luettavuutta ja tarjoaa helpon koodin muokkaamisen.

Maaginen luku matematiikassa

Matematiikassa, jos sen numeroiden summa rekursiivisesti lasketaan yksinumeroiseksi. Jos yksinumeroinen numero on 1, numeroa kutsutaan nimellä a maaginen numero . Se on melko samanlainen kuin onnellinen numero .

Esimerkiksi, 325 on maaginen luku, koska sen numeroiden summa (3+2+5) on 10, ja jälleen summaamalla resultantti (1+0), saadaan tulokseksi yksinumeroinen (1). Siksi numero 325 on maaginen luku.

Jotkut muut maagiset numerot ovat 1234, 226, 10, 1, 37, 46, 55, 73 jne .

mikä on linux-tiedostojärjestelmä

Huomaa, että jos numero on maaginen luku, kaikki mahdolliset numeron yhdistelmät ovat myös maagisia numeroita.

Esimerkiksi 532, 253, 325, 235, 352, 523 kaikkien lukujen numeroiden summa antaa 10 ja jälleen summataan resultantti (1+0), saadaan yksinumeroinen eli 1. Näin ollen voimme sanoa että maaginen luku ja sen yhdistelmät ovat myös taikuutta.

Toteutetaan yllä oleva logiikka Java-ohjelmassa ja tarkistetaan onko annettu numero taikuutta vai ei.

aakkoset numeroihin

Java Magic Number -ohjelma

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.'); } } } 

Tulos 1:

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

Tulos 2:

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

Katsotaanpa toinen logiikka maagisen numeron tarkistamiseksi.

MagicNumberExample2.java

ssis opetusohjelma
 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; } } 

Tulos 1:

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

Tulos 2:

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

Maaginen numero vs onnellinen numero

Ainoa ero taika- numerot ja onnellinen numerot tarkoittaa, että maagisessa numerossa summaamme kaikki luvun numerot rekursiivisesti, kunnes saamme signaalinumeron eli 1. onnellinen numero, laskemme rekursiivisesti numeroiden neliön summan, kunnes saamme yhden numeron 1. Jos tämä prosessi johtaa loputtomaan numerosarjaan, jossa on 4, niin lukua kutsutaan onneton määrä. Meidän on esimerkiksi tarkistettava 19 on taikuutta ja onnellinen numero vai ei.

Esimerkki maagisesta numerosta Esimerkki iloisesta numerosta
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> 

Molemmissa tapauksissa saamme 1 . Siksi numero 19 on maaginen numero ja myös onnellinen numero.