从控制台输入任意4位整数,输出该数字的各位数字之和。(java编程)

求多种方法!!!... 求多种方法!!! 展开
 我来答
百度网友12ee0fd
推荐于2017-12-15 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1956万
展开全部
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个4位自然数:");
if(scanner.hasNext("[1-9]\\d{3}?")){
int x = Integer.parseInt(scanner.next());
System.out.println(x/1000 + (x/100 % 10) + (x/10 %10) + (x %10));
} else {
System.err.println("去冲个冷水澡清醒一下吧!");
}
scanner.close();
love8053
2012-10-08 · 超过16用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:18.4万
展开全部
方法一:

import java.util.Scanner;
public class Test {
public void algorithm() {

System.out.println("请输入一个四位整数:");
Scanner input = new Scanner(System.in);

if (input.hasNextInt()==true) {// 判断是否为整数
int num = input.nextInt();
int qianwei = num / 1000;// 千位
int baiwei = num / 100 % 10;// 百位
int shiwei = num / 10 % 10;// 十位
int gewei = num % 10;// 个位
int count = qianwei + baiwei + shiwei + gewei;//四位数总和
System.out.println(num + "的四位数之和是" + count);
} else {
System.out.println("您输入的不是整数,请重新输入");
algorithm();//递归
}
}
public static void main(String[] args) {
Test t = new Test();
t.algorithm();//方法调用
}
}

方法二:用String接受 一个个拆开转换再相加,逻辑性不强,比较麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
937726913
2012-10-08 · TA获得超过485个赞
知道小有建树答主
回答量:318
采纳率:100%
帮助的人:234万
展开全部
import java.util.Scanner;
public class Test {
public static void main(String args[]){
System.out.print("请输入四位整数:");
Scanner console=new Scanner(System.in);
int temp=console.nextInt();
if (temp > 999 && temp <= 9999 ){
String str=temp+"";
int one=Integer.parseInt(str.substring(0,1));
int two=Integer.parseInt(str.substring(1,2));
int three=Integer.parseInt(str.substring(2,3));
int four=Integer.parseInt(str.substring(3,4));
System.out.println("输入的四位数字的和为-->"+(one+two+three+four));
}else{
System.out.println("输入的不是四位整数。。。");
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
winminy
推荐于2018-02-27 · TA获得超过235个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:87.6万
展开全部
public class IntTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if(i<=9999&&i>=1000){
//1
String s = new Integer(i).toString();
int sum = 0;
for(int j = 0,k=s.length();j<k;j++){
sum+=Integer.parseInt(s.substring(j, j+1));
}
System.out.println("Input:"+s+",Output:"+sum);
//2
int a = i/1000;
int b = i/100%10;
int c = i/10%10;
int d = i%10;
System.out.println("Input:"+i+",Output:"+(a+b+c+d));
//end of input
sc.close();
}else{
System.out.println("The input is not correct!");
}
}
}

只想到了2种方法
复制到Eclipse,ctrl shift o ,然后就可以run了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丛龙强
2012-10-08 · TA获得超过173个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:174万
展开全部
int number=1516;
int a, b, c, d, sum;

a = number/1000;
b = number/100%10;
c = number/10%10;
d = number%10;

sum = a + b + c + d;
追问
麻烦你能给出完整代码吗?貌似四位整数需要有判断吧!(999<number<10000)这句难道不用吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式