Home > Software design >  if condition is not working.when i try to execute if conditon,else is working
if condition is not working.when i try to execute if conditon,else is working

Time:07-03

what's wrong with this? if condition is not executing.

import java.util.Scanner;
public class ArmstrongNum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("ENTER THE NUMBER");
        int n = sc.nextInt();
        int temp = n;
        int rem = 0;
        int sum = 0;
        while (n != 0) {
            rem = n % 10;
            sum = sum   (rem * rem * rem);
            n = n / 10;

        }
        if (temp == n) {
            System.out.println("number is a AMSTRONG");
        } else {
            System.out.println("NUMBER IS NOT AMSTRONG");
        }
    }
}

CodePudding user response:

Your logic is wrong. if(temp==n) { is after while(n!=0) { so the only way it could be true is if temp == 0.

CodePudding user response:

Try another way

  public static void main(String[] args) {
        try {
            Scanner sc= new Scanner(System.in);
            System.out.println("ENTER THE NUMBER");
            int n = sc.nextInt();
            if (n == 0) {
                throw new Exception("Number is 0");
            }
            int sum = 0;
            String number = String.valueOf(n);
            char[] chars = number.toCharArray();
            double length = chars.length;
            for (char item : chars) {
                double result = Math.pow(Double.parseDouble(String.valueOf(item)), length);
                sum = sum   (int) result;
            }

            if (sum == n ) {
                System.out.println("number is a AMSTRONG");}
            else {
                System.out.println("NUMBER IS NOT AMSTRONG");
            }
        } catch (Exception exception) {
            System.out.println(exception.getMessage());
        }
    }
  • Related