我必须创建一个程序,它添加两个整数并垂直打印总和 例如,我有。
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]);
}
}
}
答案 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));
}
但是您的问题看起来像是一个数组。
步骤与我的解决方案相同: