簡體   English   中英

如何分隔兩個或多個數字並分別添加

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM