输入一个数,如果各位数之和小于10,则输出位数之和,否则将位数之和继续求和,直到小于10,并输出
2013-10-21 09:36
681 查看
import java.io.BufferedInputStream; import java.util.Scanner; public class Main { public int digitalRoot(String s){ int temp=0; for(int i=s.length()-1;i>=0;i--){ temp+=(int)s.charAt(i)-(int)'0'; } if(temp<=9){ return temp; } while(temp>9){ int sum=0; while(temp/10>0){ if(temp<100){ sum=temp/10+temp%10; break; } int r=temp/10; sum+=temp%10; } temp=sum; } return temp; } public static void main(String[] args) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); String s = null; s = cin.next(); System.out.println(new Main().digitalRoot(s)); } }
相关文章推荐
- 输入一个整数,如果该整数x符合条件:-1<x<10,则输出“ok”,否则输出“not ok”
- 输入一个整数,如果该整数x符合条件:-1<x<10,则输出“ok”,否则输出“not ok”
- 输入一个整数,如果该整数x符合条件:-1<x<10,则输出“ok”,否则输出“not ok”
- 输入一个整数,如果该整数x符合条件:-1<x<10,则输出“ok”,否则输出“not ok”
- 读取一个在0-99999之间的整数,将该整数的各位数字相加,如求和结果大于9,则继续对所获得的结果数字按各位相加求和,直至求出的和值小于10。
- 输入一个整数,如果该整数x符合条件:-1<x<10,则输出“ok”,否则输出“not ok”
- 输入一个整数,如果该整数介于1到12之间,则输出对应的月份,比如输入为1,则输出”April“;否则输出”not valid month number
- 输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
- 5.输入一个整数,如果该整数介于1到12之间,则输出对应的月份,比如输入为4,则输出”April“ -_-!;否则输出”not valid month number“
- 判断一个数(小于10位)的位数。输入999,则输出 “它是个3位的数!”
- 输入一个字符串,如果第一个字符是大写并且其他字符不是大写,那么输出true,否则输出false。
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- java 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 《剑指Offer》输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 【注意: 如果输入的大于了5位数要求用户重新输入】
- 【剑指offer24】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示无解)。1<=18,-10<=Si<=10
- Java 输入一个数放到变量n中,如果这个数大于0.计算1+2+3+。。。+(n-1)+n的结果, //否则输出 输入的撒数据有误
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。 输出格式:在一行内输出n的各位数字之和