题目描述:
求整数的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; }}