如何解决为什么最后要去掉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;
}
的副本,以便您可以保留初始输入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。