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

求多种方法!!!

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();
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-08
方法一:

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接受 一个个拆开转换再相加,逻辑性不强,比较麻烦
第2个回答  2012-10-08
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("输入的不是四位整数。。。");
}
}
}
第3个回答  推荐于2018-02-27
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了本回答被提问者采纳
第4个回答  2012-10-08
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位整数,输出该数字的各位数字之和。(java编程)
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("去冲个冷水澡清醒一下吧!");} scan...

给出一个四位整数,用java编程输出各个位上的数字
public class TestBaiduKnow {public static void main(String args[]){int n = 1234;for(int i =1;i<=4;i++){int t = n%10;n = n\/10;if(i==1)System.out.println("个位:"+t);else if(i==2)System.out.println("十位:"+t);else if(i==3)System.out.println("百位:"...

...Java 字符界面程序,在键盘上输入一个 4 位的正整数,如果输入的数...
System.out.println("该整数的各位数字之和: " + sum);} }

[JAVA]从键盘输入一个任意整数,求各位数字之和。
long l=sc.nextLong();System.out.println("输入数字的各位数之和为"+sumDigits(l));}catch(Exception e){ System.out.println("您输入的不是数字!");} } } 运行结果:请输入数字:49291 输入数字的各位数之和为25

Java语法输入一个四位整数,反向输出,求这个代码注释
public static void main(String[] args) {int num;Scanner input=new Scanner(System.in);System.out.println("请输入一个四位整数:");num =input.nextInt(); \/\/读取一个int型输入int[ ] score=new int[ 4 ];\/\/创建一个int数组for (int i = 0; i < score.length; i++) {score[...

Java:输入一个整数,输出它的位数以及各位数之和。
楼上说没错,while(X)是先进行X判断然后再执行{语句体},而do..while则是先执行do{语句体},再判断while(X),这样会导致do..while比while执行语句体的次数多一次

用Java编写一个函数,接收一个4位整数值,返回这个数中数字逆序后的结果值...
int a=Integer.parseInt(request.getParameter("数字").toString());int qian=a\/1000;int bai =(a%1000)\/100;int shi=(a%100)\/10;int ge=a%10;int b=ge*1000+shi*100+bai*10+qian;System.out.println("前:"+a+"后"+b);这是从页面接收,没环境没测试你看看好使不 ...

...将一个4位整数分成独立的数并输出各个数字,且后两个数字要换行。_百...
你需要了解的只是解决思路。 首先 你需要将此4位整数转为字符串型 再将此字符串分解为一个字符数组, 循环打印出此字符数组,在循环时根据循环次数来判断是否增加换行符即可。

...将一个4位整数分成独立的数并输出各个数字,且后两个数字要换行。_百...
看了题目,我不会编,但是可以提供一个思路。四位整数XXXX,千位对1000整除得出千位,百位对100整除再对10求余,十位对10整除再对10求余,个位对10求余。分别存在四个变量上,最后想怎么输出都可以

java编程 输入一个整数,从高位开始逐位输出它的各位数字。
public static void main(String[] args) { int ri, repeat;int digit;long n, temp, pow;Scanner in = new Scanner(System.in);repeat = in.nextInt();for (ri = 1; ri <= repeat; ri++) { n = in.nextLong();\/*---*\/ if(n<0){ n = -n;} temp = n;digit = 0;whi...

相似回答