public static int sumDig(int n){
int sum=0;
if(n>=10){
sum+=n%10;
sum+=sumDig(n/10);
}
else sum+=n;
return sum;
}
public class JavaApplication4 {
/**
* @param args the command line arguments
*/
public static int sumDig(int n){
int sum=0;
if(n>=10){
sum+=n%10;
sum+=sumDig(n/10);
}
else sum+=n;
return sum;
}
public static int sumDig2(int n){
int sum=0;
while(n>=10){
sum+=n%10;
n/=10;
}
sum+=n;
return sum;
}
public static void main(String[] args) {
// TODO code application logic here
java.util.Scanner sc=new java.util.Scanner(System.in);
int n=sc.nextInt();
System.out.println(sumDig(n));
System.out.println(sumDig2(n));
}
}
两个方法,你自己选择吧。。看懂哪个就用哪个
标准答案之一,超简的:
public static int sumDig(long n)
{
int result=0; //定义一个int类型的变量来存取最后结果
while(n!=0) //判断所要进行查询的数是不是为0
{
result+=n%10; //获得其各位上的数字
n/=10;
}
return result; //取得最终结果
}
先算出这个整数的位数,再取到一个整数的个位十位百位等等等,然后求和
这个好写,就对输入的数字求余取莫就好了, 我先去写写 不急。。
1、把数字当作字符串来处理
2、获取每一个
3、然后转数字再加另外一个。。
4、见图
5、见代码
/**
* 公司 深圳市海枫科技有限公司
* 创建时间 2018年6月22日
* 邮件 charles@hoifun.com
*/
package com.itdugu.unit01.test1;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
int num = 1234;
String str = String.valueOf(num);
int sum = 0;
for (int i = 0; i < str.length(); i++) {
sum += Integer.valueOf("" + str.charAt(i));
}
System.out.println(num + "每个数字相加的和为:" + sum);
}
}