用java8的stream处理起来,代码更简洁些 可以参考:public static void main(String[] args) { String str = "1782"; while(str.length() != 1) { str = String.valueOf(Stream.of(str.split("")).mapToInt(Integer::valueOf).sum()); } System.out.println(str);}...
用java语言计算N的数字根
import java.util.*;public class Yugi{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("输入一个整数N:"); int N = scan.nextInt(); scan.close(); String s = N + ""; while(s.length() > 1){ int sum = 0; for(int i = 0; i < s.length(); i++){ sum += Integer.parseInt(s.charAt(i) + ""); } s = sum + ""; } System.out.println("数字根:" + s); }}2015-11-16
用java8的stream处理起来,代码更简洁些
可以参考:
public static void main(String[] args) { String str = "1782"; while(str.length() != 1) { str = String.valueOf(Stream.of(str.split("")).mapToInt(Integer::valueOf).sum()); } System.out.println(str);}
中间那块函数含义也很简单
1. 先把这个字符分割成字符串数组
2. 字符串数组转化为对应stream
3. 把stream转化为IntStream
4. 直接用IntStream的sum方法求出和
5. 再把和转化为string,赋值给最开始的那个str
6. 然后判断str的长度是否为1,为1了就停止
2015-11-16