题目描述:
求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复;
输入:输入任意一个或多个整数
输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行对应一个输入数据的结果。
样例输入:
25
865
样例输出:
7
1
思路分析:
- 首先求个位数相加,经典方法,求余相除
- 要求各个位数的和是小于10,可以采用递归或者循环
代码:
import java.util.Scanner;public class Main {static int[] num = {1,2,5,10,20,50,100};public static void main(String[] args) {Scanner scan = new Scanner(System.in);while(scan.hasNext()){int input = scan.nextInt();if(input < 1){System.out.println(-1);}else{System.out.println(getRoot(input));}} }public static int getRoot(int n){int all = 0;int a = 0;while(n > 0){a = n % 10;n = n / 10;all = all +a;}if(all >= 10){return getRoot(all);}return all;}
}