当前位置: 首页 > 知识库问答 >
问题:

如何在不将整数转换为字符串的情况下反转整数的顺序

柯耀
2023-03-14

我的任务是创建一个方法,该方法将接受用户输入的3位数int,并输出其反方向(123-321)。我不允许将int转换为字符串,否则我将失去分数,我也不允许打印main以外的任何地方。

public class Lab01
{
  public int sumTheDigits(int num)
   {
      int sum = 0;
      while(num > 0)
      {
         sum = sum + num % 10;
         num = num/10;
      }
      return sum;
   }

   public int reverseTheOrder(int reverse)
   {
      return reverse;
   }

   public static void main(String[] args)
   {
      Scanner input = new Scanner(System.in); 

      Lab01 lab = new Lab01();
      System.out.println("Enter a three digit number: ");
      int theNum = input.nextInt();
      int theSum = lab.sumTheDigits(theNum);
      int theReverse = lab.reverseTheOrder(theSum);

      System.out.println("The sum of the digits of " + theNum + " is " + theSum);
  }

共有2个答案

丌官昊天
2023-03-14

你可以使用下面的方法来计算一个数字的反转。

public int reverseTheOrder(int reverse){
        int result = 0;
        while(reverse != 0){
            int rem = reverse%10;
            result = (result *10) + rem;
            reverse /= 10;
        }
      return result;
   }
宇文元明
2023-03-14

你需要使用以下方法。

  • %余数运算符
  • /除法运算符
  • *乘法
  • 添加
Say you have a number 987
n = 987
r = n % 10 = 7   remainder when dividing by 10
n = n/10 = 98    integer division
Now repeat with n until n = 0, keeping track of r.

一旦你理解了这一点,你就可以进行实验(也许先在纸上),看看如何将它们按相反的顺序放回去(使用最后两个操作符)。但请记住,在0结尾的数字(比如980)将变为89,因为领先的0被删除。

 类似资料:
  • 我试图从标准输入中读取一些非常大的数字,并将它们相加。 然而,要添加到BigInteger,我需要使用

  • 问题内容: 例如输入:(类型:) 转换示例:(类型:的切片) 问题答案: 除了mhutter的答案外,还请注意您的输入看起来像一个JSON数组(也许是来自JSON文本?)。 如果您这样处理,则可以将其内容编组为一个切片。直接解析其中的数字并不会更快(因为该包使用了反射),但是它肯定更简单: 输出(在Go Playground上尝试):

  • 我必须写一个方法,它有一个Integer类型的参数,并且必须返回一个Character类型的对象。如果给定参数的值可以表示为字符对象,则将其作为字符返回。否则返回null。 我的任务制定得很糟糕,它说:“不安全的转换(例如从int到char)在你的代码中是不允许的”,我想这不是不安全的,但也不允许? 到目前为止我的代码: 我试图通过任何方式修复它,但就是无法提出不使用不安全转换的解决方案,非常感谢

  • 问题内容: 如何在JavaScript中将字符串转换为整数? 问题答案: 最简单的方法是使用本机函数: 如果这对您不起作用,则有 parseInt , 一元加号 , 带有floor的parseFloat 和 Math.round 方法。 parseInt: 一元加号,如果您的字符串已经是整数形式: 如果您的字符串是浮点数或可能是浮点数,并且您想要一个整数: 或者,如果您要多次使用Math.floo

  • 问题内容: 有什么方法可以将null转换为Integer。null实际上是一个字符串,我在我的服务层中传递该字符串,将其接受为整数。因此,每当我尝试将null字符串强制转换为Integer时,都会引发异常。但是我必须将null转换为Integer。 问题答案: 您 不能 从String强制转换为Integer。但是,如果您尝试将字符串转换为整数,并且必须提供处理字符串的实现,请查看以下代码片段:

  • 问题内容: 给定一个数字: 将其转换为字符串的“最佳”方法是: 问题答案: 有多种方法: (我的偏爱) (我不知道编译器如何处理它,也许它和上面一样有效)