为什么最后要去掉0?

问题描述

所以,我们在第一学期就做了这个。为什么最后要去掉0?我该如何解决?我输入 4000,它显示我 4,当我需要时是 4 0 0 0。如果我输入 8030,它输出 8 0 3。

if (number > 0) {
        while (number != 0) {
        individualNum = individualNum * 10 + number % 10;
        number = number / 10;
        }
        while (individualNum > 0) {
        System.out.print((individualNum % 10));
        sum = sum + (individualNum % 10);
        individualNum = individualNum / 10;
        if (individualNum > 0) {
        System.out.print(" ");
        }
        else if (individualNum < 0){
        System.out.print((individualNum ));
        sum = sum + (individualNum % 10) * -1;
        individualNum = individualNum / 10;
        }
        }
        System.out.println(" = " + sum);
        }
        else if (number < 0){
        while (number != 0) {
        individualNum = individualNum * 10 + number % 10;
        number = number / 10;
        }
        while (individualNum < 0) {
        System.out.print((individualNum*-1 % 10));
        sum = sum + (individualNum % 10);
        individualNum = individualNum / 10;
        if (individualNum < 0) {
        System.out.print(" ");
        }
        else if (individualNum < 0){
        System.out.print((individualNum ));
        sum = sum + (individualNum % 10) ;
        individualNum = individualNum / 10;
        }
        }
        System.out.println(" = " + sum * -1 );
        }
        }catch (InputMismatchException x ){
        System.out.println("Please enter the negative sign at the front");
        }
    }
}

解决方法

如果我正确理解您的代码,您的目标是列出各个数字并打印它们的总和。为此,您首先将输入数字的“倒数”计算为 class ViewServiceProvider extends ServiceProvider { public function boot() { // Using class based composers... View::composer('profile',ProfileComposer::class); // Using closure based composers... View::composer('dashboard',function ($view) { // }); } } ,即如果您的输入是 individualNum,您希望得到 8030。但是,请注意整数没有前导零,因此您实际上会得到 0308(或者在 4000 的情况下只有 308)。

这就是您的尾随零丢失的地方。

要解决此问题,您需要在第二个循环中再次使用 4,但由于您在第一个循环中将其减少为 0,因此无效。解决方案?先复制一份。

number

看起来您也想对负数进行同样的处理,即 -8030 仍应打印 if (number > 0) { ​ ​//"invert" number int n = number; while (n != 0) { individualNum = individualNum * 10 + n % 10; n = n / 10; } //use number again,i.e. loop until n/10 reaches 0 n = number; while (n > 0) { System.out.print((individualNum % 10)); sum = sum + (individualNum % 10); individualNum = individualNum / 10; system.out.print(" "); n /= 10; } System.out.println(" = " + sum); } 。在这种情况下,您应该先否定任何负数,例如

8 0 3 0 = 11

最好使用 if(number < 0 ) { number *= -1; } 的副本,以便您可以保留初始输入。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...