給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。


 

輸入這個數,把這個數字拆分成各個字符,再轉成int整數類型相加,然后與10比較,小於10的話就輸出結果;大與10的話就繼續循環;這里運用了定義方法,因為需要多次的轉化相加,所以這樣就會更簡潔。

package com.lianchunxz.Demo01;
import java.util.Scanner;
public class SelfSum {
 public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String n = input.next();
        int num = Integer.parseInt(n);
        if(num>=0){
            do{
                int a = selfmun(num);
                num=a;
            }while(num>=10);
            System.out.println("這個數的各位加起來之后再加最后得到的一位數是:"+num);
        }else{
            System.out.println("請輸入一個正整數:");
        }
    }

    public static int selfmun(int i){
        String s = String.valueOf(i);
        int len = s.length();
        int selfmun=0;
        for (int j=0;j<len;j++) {
            String b = String.valueOf(s.charAt(j));
            int c = Integer.parseInt(b);
            selfmun += c;
        }return selfmun;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數 Leetcode練習(Python):第258題:各位相加:給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。(如何在類里面寫遞歸) 202008xx給定一個整數n(1<=n<=1000000000),要求從個位開始分離出它的每一位數字,從個位開始按照從低位到高位的順序依次輸出每一位數字(奧賽一本通p64 4題) java基礎練習 給定一個正整數m,統計m的位數,分別打印每一位數字,再按照逆序打印出各位數字。 輸入一個由4位數字組成的整數,把它分解為單個數字,然后輸出每一位數字。 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 【c語言】輸入一個整數,將每一位數字輸出
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM