Java 使用do while反转数字
创建一个java程序,该程序读取整数(NUM),并使用除法和余数/模运算符确定其倒数。如果最后一位数字为零,则在反转数字之前,将其替换为一(1)。同时输出所有数字的总和。Java 使用do while反转数字,java,Java,创建一个java程序,该程序读取整数(NUM),并使用除法和余数/模运算符确定其倒数。如果最后一位数字为零,则在反转数字之前,将其替换为一(1)。同时输出所有数字的总和。 import java.util.*; public class Main { static int replace(int number){ if (number == 0) return 0; int digit = number % 10;
import java.util.*;
public class Main {
static int replace(int number){
if (number == 0)
return 0;
int digit = number % 10;
if (digit == 0)
digit = 1;
return (number/10) * 10 + digit;
}
static int Convert(int number){
if (number == 0)
return 0;
else
return replace(number);
}
public static void main(String[] args) {
int number;
Scanner kb = new Scanner(System.in);
System.out.print("Enter the number : ");
number = kb.nextInt();
System.out.println("replace:"+replace(number));
int a, m = 0, sum = 0;
do{
a = replace(number) % 10;
m = m * 10 + a;
sum = sum + a;
number = replace(number) / 10;
}
while( replace(number) > 0);
System.out.println("Reverse:"+m);
System.out.println("Sum of digits:"+sum);
}
}
目前,该问题发生在倒数时,因为它还替换了数字的最后一位,所以不应该发生这种情况
当前程序的输入/输出
输入号码:2300
替换:2301
反向:1132
位数总和:7
改为这样做
import java.util.*;
public class Main {
static int replace(int number){
if (number %10 == 0)
return number += 1;
return number;
}
static int Convert(int number){
if (number == 0)
return 0;
else
return replace(number);
}
public static void main(String[] args) {
int number;
Scanner kb = new Scanner(System.in);
System.out.print("Enter the number : ");
number = kb.nextInt();
int a = 0, m = 0, sum = 0;
number = replace(number);
System.out.println("replace:" + number);
do{
a = number % 10;
m = m * 10 + a;
sum = sum + a;
number /= 10;
}
while( number > 0);
System.out.println("Reverse:"+m);
System.out.println("Sum of digits:"+sum);
}
}
由于您替换数字的方式,您的代码从根本上是错误的
所作的修改:
FY:您应该考虑使用空格(4)或制表符来格式化代码。这将提高代码的可读性和可维护性。另一条评论:您应该开始避免每次都将类命名为Main,为它指定一个有意义的名称来描述程序正在执行的操作:numberUtability、NumberFlipper等等。另外,尝试停止将所有方法创建为静态方法。相反,在main方法中,创建类的新实例并调用非静态方法:newnumberutility().replace()。最后,方法不应该以大写字母开头——它们应该是驼峰式的。在你的问题陈述中,你会说:“如果最后一个数字是零,在倒数之前用一(1)替换它。”调用reverse()之前,您没有执行此检查/更新的代码上次对问题的编辑删除了对您尝试执行的操作的解释。请把它带回来,让发现这个问题的人更容易理解。。请填写您的答案,将所有文本粘贴到答案中。