Bob
Bob

Reputation: 69

How to sum the digits of two integers?

How could I use the following method to sum the integers of two numbers in a separate method? I'm trying to teach myself how to use overloaded methods but this is starting to confuse me. Thanks!

public static void sumNUmber(){
        System.out.println("Enter a number");
       Scanner in = new Scanner(System.in);
    int num = in.nextInt();
        int sum = 0;
        while (num > 0) {
            sum = sum + num % 10;
            num = num / 10;
        }
        System.out.println(sum);

Upvotes: 0

Views: 778

Answers (3)

dave
dave

Reputation: 11995

You probably want to take your core algorithm and put it into a single function and then call it twice, once for each number. For example,

// Core algorithm.
public static int sumDigits(int num) {
    int sum = 0;
    while (num > 0) {
        sum += num % 10;
        num = num / 10;
    }
    return sum;
}

public static void sumNumber() {
    Scanner in = new Scanner(System.in);
    System.out.println("Enter a number");
    int numA = in.nextInt();
    System.out.println("Enter another number");
    int numB = in.nextInt();
    int totalDigits = sumDigits(numA) + sumDigits(numB);
    System.out.println(totalDigits);
}

Upvotes: 0

Ankur Singhal
Ankur Singhal

Reputation: 26077

public static void main(String[] args) throws ClassNotFoundException {

        System.out.println("Enter a number");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        System.out.println(sumDigits(num));
    }

    public static int sumDigits(int num) {
        int sum = 0;
        while (num > 0) {
            sum += num % 10;
            num = num / 10;
        }
        return sum;
    }

output

Enter a number
234
9

Upvotes: 2

34638a
34638a

Reputation: 60

//Merry Xmas :D

public int sumNumbers(int num) {
    int returnval;

    if (num < 10) { 
        return num;
    } else if (num < 100) {
        returnval = Math.floor(num/10) + (num%10);
    } else if (num < 1000) {
        returnval = Math.floor(num/100) + Math.floor(num/10) + (num%10);
    } //repeat as needed
    return 0;
}

Upvotes: 0

Related Questions