logo

Magic Number i Java

I programmering, a magiska siffran är ett numeriskt värde som används direkt i koden. Den används i identifieringssyfte. I det här avsnittet kommer vi att diskutera vad är ett magiskt tal och hur kan vi hitta ett magiskt tal genom ett Java-program.

Magiskt nummer i programmering

A magiska siffran är ett hårdkodat numeriskt värde (textvärde i vissa fall) i koden som kan ändras i ett senare skede. Det verkar godtyckligt och har inget sammanhang eller mening. Det är svårt att uppdatera. Till exempel:

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

Att använda en sådan konstant kan hjälpa oss att skilja filerna från de många andra filformaten. Till exempel:

java int i sträng
  • PDF-filer börjar med den magiska texten %PDF -> Hex (25 50 44 46)
  • PNG-filer börjar med den magiska texten %PNG -> Hex (25 50 4E 47)

Varför ska man undvika magiska siffror?

Vi ska inte använda de magiska siffrorna i programmering eftersom det leder till ett antimönster som gör koden svår att förstå och underhålla. Det döljer också avsikten så användningen av magiska siffror bör undvikas. Förändringarna i koden är också bittra hårdare.

Det rekommenderas att använda konstant för att representera värden istället för att använda magiska siffror. Det förbättrar kodens läsbarhet och ger enkel modifiering av koden.

Magiskt tal i matematik

I matematik, om summan av dess siffror rekursivt beräknas till en enda siffra. Om ensiffran är 1 kallas numret för a magiska siffran . Det är ganska likt lyckligt nummer .

Till exempel, 325 är ett magiskt tal eftersom summan av dess siffror (3+2+5) är 10, och återigen summera resultanten (1+0), får vi en enstaka siffra (1) som resultat. Därför är siffran 325 ett magiskt tal.

Några andra magiska siffror är 1234, 226, 10, 1, 37, 46, 55, 73, etc .

Observera att om ett nummer är ett magiskt tal så kommer alla möjliga kombinationer av numret också att vara de magiska talen.

Till exempel, 532, 253, 325, 235, 352, 523 summan av siffrorna för alla siffror ger 10 och summera återigen resultanten (1+0), vi får en ensiffrig, dvs. 1. Därför kan vi säga att det magiska numret och dess kombinationer också är magiska.

hur man tar bort första tecknet i excel

Låt oss implementera ovanstående logik i ett Java-program och kontrollera om det givna numret är magiskt eller inte.

Java Magic Number Program

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

Utgång 1:

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

Utgång 2:

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

Låt oss se en annan logik för att kontrollera det magiska numret.

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

Utgång 1:

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

Utgång 2:

excel ta bort första tecknet
 Enter any number to check: 671 671 is not a magic number. 

Magic Number vs Happy Number

Den enda skillnaden mellan magi siffror och Lycklig siffror är att vi i ett magiskt tal summerar alla siffror i talet rekursivt tills vi får en signalsiffra, dvs. 1. Lycklig antal, beräknar vi rekursivt summan av kvadraten av siffror tills vi får en ensiffrig 1. Om denna process resulterar i en oändlig cykel av tal som innehåller 4, så kallas talet en olycklig siffra. Vi måste till exempel kolla 19 är magiskt och lyckligt nummer eller inte.

Exempel på magiskt nummer Happy Number Exempel
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> 

I båda fallen får vi 1 . Därav antalet 19 är ett magiskt tal och även ett lyckligt tal.