[英]String of number add together from an array java
我有一个项目将一串未设定数量的数字组合在一起。 在项目中,您必须将字符串转换为数字数组。 然后从数组的末尾开始并将它们加在一起。 所以我想我问的是解决这个问题的最好方法。 我的老师说使用除数和模数来得到结转,但这就是他真正给我们的我设置的 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;
} }
此编辑没有错误,但没有返回结果。
这是我到目前为止所拥有的,但它只是不想正常工作。 任何帮助,将不胜感激。
for (int i = 长度;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;
首先,为什么不合并线? 其次,除法与加法有什么关系?
因为你必须把数字带到下一个; 您将需要一个在 for 循环之外的变量。 由于您将两个个位数相加,您可以得到的最高数字是 18,因此您可以;
得到一个你回馈的一位数,或者;
得到 10 + 一个你回馈的个位数
所以在for循环里面; 您测试温度是否为个位数:
布尔carryOne = false;
for (int i = 长度;i >= 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
学习编码的最大过程,是获得心态
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.