-1

试图弄清楚一旦被拉开后如何重建数字......使用模运算符交换数字对。例如,调用 swapDigitPairs(482596) 的方法将返回 845269。它需要在不使用数组或字符串的情况下完成。如果该方法传递了一个奇数位数的整数,则最左边的数字不会移动。

编辑:交换 9 和 6,交换 2 和 5,交换 4 和 8。我了解如何将数字分开,但我正在寻找一些想法,如何在没有字符串或数组的情况下将它们放在一起. 任何想法表示赞赏

4

2 回答 2

1

这是一个临时伪代码 - 希望有帮助

{
    int i = 0x842569;

    Do for each byte
    {
          for byte0
          {

               int  byte0Swapped = swapNibble (i & 0xFF);

                i = (i & 0xFFFFFF00) | byte0Swapped ;
          }
    }
}
于 2013-02-18T06:02:08.017 回答
0

哈斯克尔:

swap num = 
  swap' num 1
    where swap' num factor =
            let a = mod num 10
                b = mod (div num 10) 10
            in next + factor * (10 * a + b)
                where next = if num == 0 
                                then 0
                                else swap' (div num 100) (100 * factor)

*主>交换 482596
845269

于 2013-02-18T07:08:50.920 回答