求出任意数字的各个位数之和
import java.util.Scanner;
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;
代码
package lqp;
import java.util.Scanner;
public class code_2_6 {
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;
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。