[英]How to separate two or more digits number and add them separately
我想做一个活动,如果我有某个整数表示ex。 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;
}
我没有得到理想的结果。
您应该已经学习了递归编程 ,还应该使用百分比“%”运算符来查找数字中的每个数字
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;
}
String str_no="1235";
String answer="";
while (check_sum() > 9)
{
calc_sum();
}
Log.w("final value...",answer);
public void calc_sum()
{
int temp=0;
String temp_str="";
for (int i=0;i<str_no.length();i++)
{
try
{
temp_str=""+str_no.charAt(i);
temp=temp+Integer.parseInt(temp_str);
}
catch (Exception e)
{
// TODO: handle exception
}
}
str_no=""+temp;
}
public int check_sum()
{
int temp=0;
String temp_str="";
for (int i=0;i<str_no.length();i++)
{
try
{
temp_str=""+str_no.charAt(i);
temp=temp+Integer.parseInt(temp_str);
}
catch (Exception e)
{
// TODO: handle exception
}
}
answer=""+temp;
return temp;
}
好吧,您可以尝试以下操作:
int var = 0, sum = 0;
System.out.println("Enter an integer:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
var = Integer.parseInt(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Value of var is: " + var);
do
{
sum=0;
while(var>0)
{
sum += var%10;
var = var/10;
}
var = sum;
} while(var>10);
System.out.println("Sum of digits is: " + var);
我希望这有帮助...
public static void main(String[] args)
{
int num = 656869787;
String numStr = num+"";
while(Integer.parseInt(numStr)>9){
numStr = addDigits(numStr);
}
System.out.print(numStr);
}
private static String addDigits(String numStr) {
int sum = 0;
char[] arr = numStr.toCharArray();
for(char c : arr){
sum = sum + Integer.parseInt(c+"");
}
return sum+"";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.