Bij het programmeren is een magisch nummer is een numerieke waarde die rechtstreeks in de code wordt gebruikt. Het wordt gebruikt voor identificatiedoeleinden. In deze sectie zullen we bespreken wat is een magisch getal En hoe kunnen we een magisch getal vinden via een Java-programma.
instellingen van de internetbrowser
Magisch getal in programmeren
A magisch nummer is een hardgecodeerde numerieke waarde (in sommige gevallen tekstwaarde) in de code die in een later stadium kan veranderen. Het lijkt willekeurig en heeft geen context of betekenis. Het is moeilijk om te updaten. Bijvoorbeeld:
const num = 74; //where 2 is hard-coded const number = num / 2; //it should be properly defined
Het gebruik van een dergelijke constante kan ons helpen de bestanden te onderscheiden van de vele andere bestandsindelingen. Bijvoorbeeld:
- PDF-bestanden beginnen met de magische tekst %PDF -> Hex (25 50 44 46)
- PNG-bestanden beginnen met de magische tekst %PNG -> Hex (25 50 4E 47)
Waarom magische getallen moeten vermijden?
We moeten de magische getallen niet gebruiken bij het programmeren, omdat dit leidt tot een antipatroon dat de code moeilijk te begrijpen en te onderhouden maakt. Het verbergt ook de bedoeling, dus het gebruik van magische getallen moet worden vermeden. De veranderingen in de code zijn ook bitter moeilijker.
Het wordt aanbevolen om constante te gebruiken om waarden weer te geven in plaats van magische getallen te gebruiken. Het verbetert de leesbaarheid van code en zorgt voor eenvoudige aanpassing van de code.
Magisch getal in de wiskunde
In de wiskunde, als de som van de cijfers recursief wordt berekend tot op één cijfer. Als het enkele cijfer 1 is, wordt het nummer a genoemd magisch nummer . Het is vrij gelijkaardig aan de vrolijk nummer .
Bijvoorbeeld, 325 is een magisch getal omdat de som van de cijfers (3+2+5) 10 is, en als we de resultante (1+0) opnieuw optellen, krijgen we een enkel cijfer (1) als resultaat. Daarom is het getal 325 een magisch getal.
Enkele andere magische getallen zijn dat wel 1234, 226, 10, 1, 37, 46, 55, 73, enz. .
Houd er rekening mee dat als een getal een magisch getal is, alle mogelijke combinaties van het getal ook magische getallen zullen zijn.
Bijvoorbeeld, 532, 253, 325, 235, 352, 523, de som van de cijfers van alle getallen geeft 10 en telt opnieuw de resulterende op (1+0), we krijgen een enkel cijfer, d.w.z. 1. Daarom kunnen we zeggen dat het magische getal en zijn combinaties ook magisch zijn.
int om in Java te stringen
Laten we de bovenstaande logica in een Java-programma implementeren en controleren of het gegeven getal magisch is of niet.
Java Magic Number-programma
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.'); } } }
Uitgang 1:
Enter a number you want to check: 325 The given number is a magic number.
Uitgang 2:
Enter a number you want to check: 891 The given number is a magic number.
Laten we een andere logica bekijken om het magische getal te controleren.
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; } }
Uitgang 1:
Enter any number to check: 73 73 is a magic number.
Uitgang 2:
tekenreeks naar int converteren
Enter any number to check: 671 671 is not a magic number.
Magisch getal versus gelukkig getal
Het enige verschil tussen magie cijfers en Vrolijk getallen is dat we in een magisch getal alle cijfers van het getal recursief optellen totdat we een signaalcijfer krijgen, d.w.z. 1. Terwijl we in Vrolijk getal, berekenen we recursief de som van het kwadraat van cijfers totdat we een enkel cijfer 1 krijgen. Als dit proces resulteert in een eindeloze cyclus van getallen die 4 bevatten, dan wordt het getal een getal genoemd. ongelukkig nummer. Wij moeten bijvoorbeeld controleren 19 is magisch en gelukkig getal of niet.
Voorbeeld van een magisch getal | Gelukkig nummer voorbeeld |
---|---|
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> |
In beide gevallen krijgen we 1 . Vandaar het nummer 19 is een magisch getal en ook een gelukkig getal.