输入:
每行一个正整数(<2^32).
输出:
每行一个输出,对应该数的各位数之和.
方法一:利用整数取余求解
import java.util.Scanner; import java.lang.Math; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { long a = sc.nextLong(); int sum = 0;//用来求和 while(a!=0) { sum += a%10; a /= 10; } System.out.println(sum); } } }
注:看清题目要求,输入的正整数是小于2^32,int类型的范围是-2^32~(2^31)-1,明显题目设坑了,输入的数范围超过了int类型,所以要用long类型来接收,至于求和sum的类型int,long都可以
方法二:利用递归求和
import java.util.Scanner; import java.lang.Math; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { long a = sc.nextLong(); long sum = 0; sum = s(a); System.out.println(sum); } } private static long s(long a) { if(a<10) { return a; }else { return a%10+s(a/10); } } }
方法三:字符求和
import java.util.Scanner; import java.lang.Math; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { String sts = sc.nextLine(); int sum = 0; for(int i=0;i欢迎分享,转载请注明来源:内存溢出
评论列表(0条)