Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 整数求和_Java_Sum_Integer - Fatal编程技术网

Java 整数求和

Java 整数求和,java,sum,integer,Java,Sum,Integer,说明是:输入一个整数(32位)并对其数字求和,您可能会得到一个负整数或正整数。读取负整数时,求和数字,但忽略-号 这就是我所拥有的。不知何故,当整数为负数时,我不能让它忽略负号 import java.util.Scanner; public class Exercise2_6M { public static void main(String[] args) { // Create a Scanner Scanner input = new Scann

说明是:输入一个整数(32位)并对其数字求和,您可能会得到一个负整数或正整数。读取负整数时,求和数字,但忽略-号

这就是我所拥有的。不知何故,当整数为负数时,我不能让它忽略负号

import java.util.Scanner;

public class Exercise2_6M {
    public static void main(String[] args) {
        // Create a Scanner
        Scanner input = new Scanner(System.in);

        // Enter amount
        System.out.print("Enter an integer:");
        int integer = input.nextInt();
        if (integer < 0)
            integer = -integer;

        // Calculations
        int rinteger = Math. abs (integer);
        int lastinteger = integer % 10;
        int X = integer / 10;
        int secondinteger= X % 10;
        int firstinteger = X /10;
        int finalinteger = firstinteger + secondinteger + lastinteger;


        // Display results
        System.out.println("Sum all digits in " + rinteger + " is " + finalinteger);
    }
}
import java.util.Scanner;
公共课练习2_6M{
公共静态void main(字符串[]args){
//创建扫描仪
扫描仪输入=新扫描仪(System.in);
//输入金额
System.out.print(“输入整数:”);
int integer=input.nextInt();
if(整数<0)
整数=-整数;
//计算
int rinteger=Math.abs(整数);
int lastinteger=整数%10;
int X=整数/10;
int secondinteger=X%10;
int firstinteger=X/10;
int finalinteger=firstinteger+secondinteger+lastinteger;
//显示结果
System.out.println(“将“+rinteger+”中的所有数字相加为“+finalinteger”);
}
}

我记不清具体的名称,但integer可能是一个保留的java关键字,因此您可能需要更改该变量名(即Input或其他名称)。你的代码背后的想法看起来很合理。。。但不是:

integer = -integer;
尝试:


这应该可以解决问题。

我记不清具体的情况,但integer可能是一个保留的java关键字,因此您可能需要更改该变量名(即inputInt或其他)。你的代码背后的想法看起来很合理。。。但不是:

integer = -integer;
尝试:


这就可以了。

要忽略负号:

int integer = Math.abs(input.nextInt());
编辑: 我没有注意到你的代码已经做到了这一点。要使代码在末尾显示负号,请删除以下行:

if (integer < 0)
        integer = -integer;
然后,用rinteger替换计算部分中除第一个
integer
之外的所有实例,如下所示

    // Calculations
    int rinteger = Math. abs (integer);
    int lastinteger = rinteger % 10;
    int X = rinteger / 10;
    int secondinteger= X % 10;
    int firstinteger = X /10;
    int finalinteger = firstinteger + secondinteger + lastinteger;

最后,在显示结果时,使用integer而不是rinteger来恢复减号,或者如果
integer忽略负号,则手动输入减号:

int integer = Math.abs(input.nextInt());
编辑: 我没有注意到你的代码已经做到了这一点。要使代码在末尾显示负号,请删除以下行:

if (integer < 0)
        integer = -integer;
然后,用rinteger替换计算部分中除第一个
integer
之外的所有实例,如下所示

    // Calculations
    int rinteger = Math. abs (integer);
    int lastinteger = rinteger % 10;
    int X = rinteger / 10;
    int secondinteger= X % 10;
    int firstinteger = X /10;
    int finalinteger = firstinteger + secondinteger + lastinteger;

最后,在显示结果时,使用integer而不是rinteger来恢复减号,或者在运行时手动输入减号(如果
integer),它会像预期的那样忽略负号。我看到有两个问题

  • 当您打印负数时,它会打印正数。考虑将原始值存储在打印中。
  • 它不适用于大数字,因为您需要硬编码3位数字。考虑把这个放在一个循环中以获得所有的数字。
  • 以下是我的测试输出:

    第一个是好的,第二个是好的,第三个应该说“将-4中的所有数字相加等于4”,最后一个应该说“将12345中的所有数字相加等于15”


    当我运行它时,它会像预期的那样忽略负片。我看到有两个问题

  • 当您打印负数时,它会打印正数。考虑将原始值存储在打印中。
  • 它不适用于大数字,因为您需要硬编码3位数字。考虑把这个放在一个循环中以获得所有的数字。
  • 以下是我的测试输出:

    第一个是好的,第二个是好的,第三个应该说“将-4中的所有数字相加等于4”,最后一个应该说“将12345中的所有数字相加等于15”


    有错误吗?您有输出吗?这将在三位数上工作,但在其他情况下不起作用。@mimisbrunr说的是,您在其中缺少一个循环。这对我来说很好(只要您的INT有三位数或更少)复制并粘贴以下内容:
    import java.util.*;类S{publicstaticvoidmain(String[]a){Scanner i=new Scanner(System.in);而(true){int n=i.nextInt(),S=0;for(n=Math.abs(n);n!=0;S+=n%10,n/=10);System.out.println(S);}
    (192字节)到名为S.java的文件,编译并运行它。它应该做你需要的一切,并能正确地处理任意大小的整数。有错误吗?您有输出吗?这将在三位数上工作,但在其他情况下不起作用。@mimisbrunr说的是,您在其中缺少一个循环。这对我来说很好(只要您的INT有三位数或更少)复制并粘贴以下内容:
    import java.util.*;类S{publicstaticvoidmain(String[]a){Scanner i=new Scanner(System.in);而(true){int n=i.nextInt(),S=0;for(n=Math.abs(n);n!=0;S+=n%10,n/=10);System.out.println(S);}
    (192字节)到名为S.java的文件,编译并运行它。它应该做你需要的一切,并能正确地处理任意大小的整数。它不是一个保留字。而
    -integer
    的工作原理就像它被假定的那样:)integer不是一个好名字,但它很好用。整数会是个问题。@Costis我不认为会。(请注意,我用
    integer
    替换了
    integer
    ,它运行得很好。因此,我知道这不会有问题。)至少对编译器来说是这样。对于必须阅读此代码的人来说,是的,这可能是一个问题!我记得在2006年,我遇到了一些问题,我相信命名某个整数。。。哦,好吧。但是@glowcoder您是对的,使用与本机命名不明确的命名可能会影响可读性。它不是保留字。而
    -integer
    的工作原理就像它被假定的那样:)integer不是一个好名字,但它很好用。整数会是个问题。@Costis我不认为会。(请注意,我用
    integer
    替换了
    integer
    ,它运行得很好。因此,我知道这不会有问题。)至少对编译器来说是这样。对于必须阅读此代码的人来说,是的,这可能是一个问题!我记得在2006年,我遇到了一些问题,我相信命名某个整数。。。哦,好吧。但是@glowcoder你是对的