我有一个项目可以将一组未设定的数字放在一起。在项目中,您必须将字符串转换为数字数组。然后从数组的末尾开始并将它们一起添加。所以我想我问的是最好的方法。我的老师说使用除数和模数来得到结转,但这就是他真正给我们的所有我有Int数组设置就是无法得到正确的结果。
公共类FunctionLibrary { public static String performAddition(String sNumber1,String sNumber2) { int length = 0;
if (sNumber1.length() > sNumber2.length())
{
length = sNumber1.length()-1;
}
else
{
length = sNumber2.length()-1;
}
int[] input1 = new int[length];
int[] input2 = new int[length];
int[] result = new int[length+1];
String resultS = "";
for (int i = length; i > 0; i--)
{
input1[i] = Character.getNumericValue(sNumber1.charAt(i));
}
for (int i = length; i > 0; i--)
{
input2[i] = Character.getNumericValue(sNumber2.charAt(i));
}
for (int i = length; i > 0; i--)
{
int temp = 0;
int divid = 0;
int modulas = 0;
int answer = 0;
temp = input1[i] + input2[i];
divid = temp/10;
modulas = temp%10;
input1[i+1] += modulas;
answer = divid;
result[i] = answer;
}
for (int i = 0; i <= length; i++)
{
resultS += Integer.toString(result[i]);
}
return resultS;
} }
此编辑没有错误,但没有结果返回。
这是我到目前为止所做的,但它只是不想正常工作。任何帮助将不胜感激。
答案 0 :(得分:0)
for(int i = length; i&gt; = 0; i--) {
int temp = 0; int divid = 0; int modulas = 0; int answer = 0; temp = input1[i] + input2[i]; divid = temp/10; modulas = temp%10;
首先,为什么不合并线? 第二,与加法有什么区别?
因为你必须携带数字到下一个;你需要一个在for循环之外的变量。由于你添加了两个一位数字,你可以得到的最高数字是18,所以你要么;
获得一位数字,或者;
得到10 +你回馈的一位数
所以在for循环中;你测试temp是否是单个数字:
boolean carryOne = false;
for(int i = length; i&gt; = 0; i--) {
int answer = 0; int temp = input1[i] + input2[i]; if(carryOne) { temp++; carryOne = false; } if(temp >= 10) { // two digits: answer = (temp - 10); // you give the left digit back, carryOne = true; // and carry the ten } else answer = temp; // single digit
学习编码的最大过程就是获得心态