总结一个数字的所有数字并在Java中分别显示数字

Doo*_*rBG 5 java numbers digits

我一直在使用这个网站很多,但我从来没有真正写过任何东西。今天,我偶然发现了一个我似乎找不到解决方案的问题。

问题是,我有int variable一个未知位数。它要求我将所有这些数字相加,然后将其打印/显示_as_a_message,并将所有这些数字分开。

例如,用户输入数字“12345678”,最后我需要一条消息说“数字 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36”。我知道如何将所有这些数字分开和求和,但我不知道如何保存每个数字然后显示它,因为我不仅不知道正确的数字数量,而且我不知道它们的值任何一个。

通常这并不难做到,但对我来说棘手的部分来了,因为我们还没有学习arrays, strings, 索引等东西,我们不允许使用它们。所以,我应该用最简单的代码类型来做。

到目前为止,我有以下几点:

import java.util.Scanner;
public class Numbers {
    public static void main(String[] args) {
        int number, result;
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter number:");
        number = sc.nextInt();
        result = 0;
        while (number > 0){
            result = result + (number % 10);
            number = number / 10;
        }
        System.out.println("This is where the message would go.");
    }
}
Run Code Online (Sandbox Code Playgroud)

Luk*_*aia 1

static final Scanner input = new Scanner(System.in);

public static void main(String[] args) {
    int number, result;
    System.out.println("Enter number:");
    number = input.nextInt();
    result = 0;
    System.out.print("The numbers: ");

    //Reverses the number
    int reversedNum = 0;
    while (number != 0) {
        reversedNum = reversedNum * 10 + number % 10;
        number = number / 10;
    }

    //Iterates over the number and prints it out
    while (reversedNum > 0) {
        System.out.print((reversedNum % 10));

        result = result + (reversedNum % 10);
        reversedNum = reversedNum / 10;

        if (reversedNum > 0) {
            System.out.print(" + ");
        }
    }
    System.out.println(" = " + result);
}
Run Code Online (Sandbox Code Playgroud)

这可以在不使用数组和字符串的情况下以正确的顺序打印出所有数字。

例子:

Enter number:
12345
The numbers: 1 + 2 + 3 + 4 + 5 = 15
BUILD SUCCESSFUL (total time: 5 seconds)
Run Code Online (Sandbox Code Playgroud)