У програмирању, а магични број је нумеричка вредност која се користи директно у коду. Користи се у сврху идентификације. У овом одељку ћемо разговарати шта је магични број и како можемо да пронађемо магични број преко Јава програма.
Магични број у програмирању
А магични број је тврдо кодирана нумеричка вредност (у неким случајевима текстуална вредност) у коду која се може променити у каснијој фази. Изгледа као произвољно и нема контекст или значење. Тешко је ажурирати. На пример:
const num = 74; //where 2 is hard-coded const number = num / 2; //it should be properly defined
Коришћење такве константе може нам помоћи да разликујемо датотеке међу многим другим форматима датотека. На пример:
- ПДФ датотеке почињу магичним текстом %ПДФ -> Хек (25 50 44 46)
- ПНГ датотеке почињу магичним текстом %ПНГ -> Хек (25 50 4Е 47)
Зашто треба избегавати магичне бројеве?
Не би требало да користимо магичне бројеве у програмирању јер то доводи до анти-обрасца који отежава разумевање и одржавање кода. Такође скрива намеру тако да треба избегавати употребу магичних бројева. Промене у коду су такође теже.
брзо сортирање
Препоручује се да користите константу за представљање вредности уместо да користите магичне бројеве. Побољшава читљивост кода и омогућава лаку модификацију кода.
Магични број у математици
У математици, ако је збир његових цифара рекурзивно израчунава се до једноцифрене. Ако је једноцифра 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. Дакле, можемо рећи да су магијски број и његове комбинације такође магијски.
Хајде да имплементирамо горњу логику у Јава програм и проверимо да ли је дати број магичан или не.
матх.рандом јава
Јава Магиц Нумбер Програм
МагицНумберЕкампле1.јава
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.
Хајде да видимо другу логику да проверимо магични број.
МагицНумберЕкампле2.јава
авл дрвеће
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:
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 је магичан број и такође срећан број.