Computer Science, asked by Anonymous, 8 months ago

Write a program to input a number and check it is a Magical number or not using a method
isMagic() which returns a boolean value.

Answers

Answered by nknandha
0

Answer:

Examples :

Number to check : 19

1 + 9 = 10 // 10 is not a single digit number, continue adding digits

1 + 0 = 1 // 19 is a Magic number

Number to check : 1891

1 + 8 + 9 + 1 = 19 // 19 is not a single digit number, continue adding digits

1 + 9 = 10 // 10 is not a single digit number, continue adding digits

1 + 0 = 1 // 1891 is a Magic number

Below are examples of numbers which are NOT Magic numbers

Number to check : 29

2 + 9 = 11 // 11 is not a single digit number, continue adding digits

1 + 1 = 2 // 29 is NOT a Magic number

Number to check : 2888

2 + 8 + 8 + 8 = 26// 26 is not a single digit number, continue adding digits

2 + 6 = 8 // 2888 is NOT a Magic number

Java Program for Magic Number

import java.util.*;

public class JavaHungry {

public static void main(String args[]) {

System.out.println("Enter any number : ");

Scanner scan = new Scanner(System.in);

int inputNumber = scan.nextInt();

boolean result = checkMagicNumber(inputNumber);

if(result)

System.out.println(inputNumber +" is a Magic Number");

else

System.out.println(inputNumber +" is NOT a Magic Number");

}

public static boolean checkMagicNumber(int inputNumber) {

// Initialize sumOfDigits of inputNumber

int sumOfDigits = 0;

// Create a copy of the inputNumber

int number = inputNumber;

while( sumOfDigits > 9 || number > 0) {

/* if number is zero and sumOfDigits is non-zero

then the loop will continue.

Loop will stop when number is zero and

sumOfDigits becomes a single digit */

if (number == 0) {

number = sumOfDigits;

sumOfDigits = 0;

}

sumOfDigits = sumOfDigits + (number % 10);

number = number / 10;

}

/* If sumOfDigits is equal to 1 then

the number is Magic number, otherwise not */

return (sumOfDigits == 1);

}

}

Output :

Enter any number : 145

145 is a Magic number

2. Another way of checking whether a given number is Magic number or not is given below.

import java.util.*;

public class JavaHungry {

public static void main(String args[]) {

System.out.println("Enter any number : ");

Scanner scan = new Scanner(System.in);

int inputNumber = scan.nextInt();

if(inputNumber % 9 == 1)

System.out.println(inputNumber +" is a Magic Number");

else

System.out.println(inputNumber +" is NOT a Magic Number");

}

}

Output :

Enter any number : 226

226 is a Magic number

List of Magic numbers from 1 to 100 are :

1, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, 100

Algorithm for Magic Number

1. Initialize sumOfDigits variable value to 0. It will represent the sum of digits of a given inputNumber.

2. Create a copy of the inputNumber (original number) by storing its value in variable number.

3. Using while loop

a. Continue the loop till the sumOfDigits does not become a single digit or number is not equal to zero.

b. Get the rightmost digit of variable number by using (number % 10) and add its value to the variable sumOf Digits.

4. Check whether the variable sumOfDigits is equal to 1.

a. If both are equal then the inputNumber is Magic number.

b. Otherwise, the inputNumber is not a Magic number.

That's all for the day, please mention in comments if you know any other way to implement Magic number program in java.

Similar questions