我想做一个 Activity ,如果我有一个特定的整数作为前。第456章 我想让它把这个整数分成4、5、6,然后像4+5+6一样分别相加,直到最后的结果等于或小于9或个位数。
例如:
4+5+6=15,现在15也是2位数字,现在又将15分开为1、5并添加1+5即6
所以我必须得到一位数字的最终结果。
如何在 Java 或 Android 中实现此目的?
这是我尝试过的以下代码:
if(sum > 9)
{
int numbers = 0;
int number = sum;
int[] digits = getDigitsOf(number);
for (int i = 0; i < digits.length; i++) {
numbers = (digits[i]);
}
tv.setText(numbers);
}
函数是:
public int[] getDigitsOf(int num)
{
int digitCount = Integer.toString(num).length();
if (num < 0)
digitCount--;
int[] result = new int[digitCount];
while (digitCount-- >0) {
result[digitCount] = num % 10;
num /= 10;
}
return result;
}
我没有得到想要的结果。
最佳答案
你应该学会了 recursive programming 以及使用百分比“%”运算符来查找数字中的每个数字
456%10 = 6;// which is the remainder
请使用这两个方法并找到您的答案。
这是一个简单的程序。尝试一下这两种想法,答案就会为你所用
编辑: 我更喜欢这样的逻辑
public static void main(String[] args) {
int number = 456;
System.out.println(splitnumberAndSum(number));
}
private static int splitnumberAndSum(int number) {
int sum = 0;
int rem;
while (number>0) {
rem=number%10;
sum+=rem;
number /= 10;
}
if(sum>9){
sum = splitnumberAndSum(sum);
}
return sum;
}
关于java - 如何将两个或多个数字分开并分别相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13245528/