添加数字并使用数组垂直打印总和

时间:2016-08-04 17:09:54

标签: java arrays loops compiler-errors sum

我必须创建一个程序,它添加两个整数并垂直打印总和 例如,我有。

a=323, b=322.

输出应为:

6
4
5

我已经为整数最多两位数创建了代码,但我希望它至少可以工作三位数。

以下是我能想到的最好的 这可能是完全错误的,但我面临的唯一问题是数组的声明 它表示阵列可能没有被初始化 如果我将其设置为null,那么它也不会在以后为其分配值。

我知道也许我在这里犯了一个大错,但我真的很感激,如果有人能帮助我的话。
请记住,我不得在此代码中使用任何其他功能 希望我清楚。

public class Vert
{
    public static void main(String args[])
    {
        int n,i=0,j,a=323,b=322;
        int s[];
        n=a+b;
        while(n>9)
        {
            s[i]=n%10;
            i++;
            s[i]=n/10;
            if(s[i]>9)
            {
                n=s[i];
            }
        }
        j=i;
        for(j=i;j>=0;j--)
        {
            System.out.println(+s[j]);
        }
    }
}

3 个答案:

答案 0 :(得分:2)

字符串转换似乎是作弊,所以这里是Stack

int a = 323, b = 322;

java.util.Stack<Integer> stack = new java.util.Stack<>();

int n = a + b;
while (n > 0) {
    stack.push(n % 10);
    n = n / 10;
}

while (!stack.isEmpty())
    System.out.println(stack.pop());

如果需要数组,则需要两次遍历总和

int a = 323, b = 322;

// Get the size of the array
int n = a + b;
int size = 0;
while (n > 0) {
    size++;
    n = n / 10;
}

// Build the output
int s[] = new int[size];
n = a + b;
for (int i = size - 1; n > 0; i--) {
    s[i] = n % 10;
    n = n / 10;
}

// Print
for (int x : s) {
    System.out.println(x);
}

答案 1 :(得分:1)

要初始化数组,您需要指定数组的大小:

int s[] = new int[mySize];

如果您不知道数组的大小,则应考虑使用List Integer作为下一个:

List<Integer> s = new ArrayList<Integer>();

以下是如何做到的:

// Convert the sum into a String
String result = String.valueOf(a + b);
for (int i=0; i <result.length();i++) {
    // Print one character corresponding to a digit here per line
    System.out.println(result.charAt(i));
}

答案 2 :(得分:1)

我这样做:

int a = 322;
int b = 322;
int sum = a + b;
String s = Integer.toString(sum);
for(int i = 0; i < s.length(); i++) {
  System.out.println(s.charAt(i));
}

但是您的问题看起来像是一个数组。

步骤与我的解决方案相同:

  1. 使用int值
  2. 求和int值(操作)
  3. 转换数组/字符串中的int值
  4. 输出数组/字符串