給定一個非負整數 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刪除。



猜您在找 Leetcode練習(Python):第258題:各位相加:給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。 給定一個非負整數 num,反復將各個位上的數字相加,直到結果為一位數。(如何在類里面寫遞歸) java基礎練習 給定一個正整數m,統計m的位數,分別打印每一位數字,再按照逆序打印出各位數字。 2、牛牛想對一個數做若干次變換,直到這個數只剩下一位數字。 變換的規則是:將這個數變成 所有位數上的數字的乘積。比如285經過一次變換后轉化成2*8*5=80. 問題是,要做多少次變換,使得這個數變成個位 例子:循環語句--給定一個不超過5位的正整數,判斷該數的位數,依次打印出個位、十位、百位、千位、萬位的數字。 給出一個不多於5位的整數,要求 1、求出它是幾位數 2、分別輸出每一位數字 3、按逆序輸出各位數字,例如原數為321,應輸出123 給出一個不多於5位的正整數,要求:1.求出它是幾位數2.分別輸出每一位數字3.按逆序輸出各位數字,例如原數321應輸出123 給一個不多於5位的正整數,要求:①求出它是幾位數;②分別輸出每一位數字;③按逆序輸出各位數字,例如原數為321,應輸出123 給一個不多於5位的正整數,要求:①求出它是幾位數;②分別輸出每一位數字;③按逆序輸出各位數字,例如原數為321,應輸出123。 jquery 獲取時間 一位數則補零
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM