求任意数字各个位数之和
JamPaan 人气:0求出任意数字的各个位数之和
import java.util.Scanner; /** * 用JAVA求任意一个数的各个位数之和 * @author Administrator * */ public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个数字:"); int num = sc.nextInt(); int sum=0; while(num!=0){ sum = sum + num%10; num = num/10; } System.out.println("所给数字的各个位数之和为:"+sum); } }
求一个整数各位数之和
功能:求一个整数各位数之和
输入:一个整数,如999、888、100、等
输出:该整数各位数之和,如999各位之和为27
思路分析
主要思路:也就是求商和余数的算法,不断整除10求余数。
步骤:
假设输入数字为a=999;
设两个数:m和n,n为该数的个位数,m为该数整除10的商。
首先求个位数的数字:n = a%10=9;
然后把这个数现在变成a=a-n;没有个位数了。
降位:m = a/10;
最后求的各位数之和为sum=0,初始化为0;
sum=sum+n;
然后就是不断用m%10;求出当前最后一位数,并更新m,使得m=m/10;
代码
/** * 求一个整数各位数的和 * 输入:0-1000之间的一个整数 * 输出:该整数各位数相加 */ package lqp; import java.util.Scanner; /** * <p>Title:</p> * <p>Description:</p> * @author Li Qingpei * @data 2018年12月7日 */ public class code_2_6 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.println("Enter a number between 0 and 1000: "); int a = input.nextInt(); int b = code_2_6.numberSum(a); System.out.print("The sum of the digist is "+b); } public static int numberSum(int a){ int n = a%10; a = a-n; int m = a/10; int sum=0; sum = sum+n; while(m!=0) { sum = sum+m%10; m=m/10; } return sum; } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容