为了账号安全,请及时绑定邮箱和手机立即绑定

Java在不使用数组的情况下反转int值

Java在不使用数组的情况下反转int值

拉风的咖菲猫 2019-08-13 14:02:43
Java在不使用数组的情况下反转int值任何人都可以向我解释如何在不使用数组或字符串的情况下反转整数。我从网上得到了这个代码,但不是很明白为什么+输入%10并再次划分。while (input != 0) {     reversedNum = reversedNum * 10 + input % 10;     input = input / 10;   }以及如何使用此示例代码仅反转奇数。示例我得到了此输入12345,然后它将奇数反转为输出531。
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

我不清楚你的奇数。此代码的工作方式是(它不是Java特定的算法)例如。输入= 2345第一次在while循环中rev = 5输入= 234第二次rev = 5 * 10 + 4 = 54输入= 23第三次rev = 54 * 10 + 3输入= 2第四次rev = 543 * 10 + 2输入= 0

所以反转的数字是5432.如果你只想要反转数字中的奇数,那么。代码是:

while (input != 0) {    
    last_digit = input % 10;
    if (last_digit % 2 != 0) {     
        reversedNum = reversedNum * 10 + last_digit;

    }
    input = input / 10; }


查看完整回答
反对 回复 2019-08-13
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

Java反转int值 - 原则

  1. 将输入int修改(%)10将从最右边的数字中提取。例如:(1234%10)= 4

  2. 将整数乘以10将“向左推”,在该数字的右侧显示零,例如:(5 * 10)= 50

  3. 将整数除以10将删除最右边的数字。(75/10)= 7

Java反转一个int值 - 伪代码:

一个。提取输入数字的最右边数字。(1234%10)= 4

湾 取该数字(4)并将其添加到新的reversedNum中。

C。将reversedNum乘以10(4 * 10)= 40,这会在您的(4)右侧显示零。

d。将输入除以10,(删除最右边的数字)。(1234/10)= 123

即 用步骤123重复步骤123

Java反转int值 - 工作代码

public int reverseInt(int input) {
    long reversedNum = 0;
    long input_long = input;

    while (input_long != 0) {
        reversedNum = reversedNum * 10 + input_long % 10;
        input_long = input_long / 10;
    }

    if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE) {
        throw new IllegalArgumentException();
    }
    return (int) reversedNum;}

在真实的工作环境中,你永远不会做这样的事情。然而,你在没有帮助的情况下使用它来解决问题的过程将能够解决问题的人与那些想要解决问题的人区分开来,但除非他们被博客上的好人用勺子喂食,否则就不能分开。


查看完整回答
反对 回复 2019-08-13
?
jeck猫

TA贡献1909条经验 获得超7个赞

只需你可以使用它

public int getReverseInt(int value) {
    int resultNumber = 0;
    for (int i = value; i !=0; i /= 10) {
        resultNumber = resultNumber * 10 + i % 10;
    }
    return resultNumber;        }

您可以将此方法与您想要反转的给定值一起使用。


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 528 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信