试图弄清楚一旦被拉开后如何重建数字......使用模运算符交换数字对。例如,调用 swapDigitPairs(482596) 的方法将返回 845269。它需要在不使用数组或字符串的情况下完成。如果该方法传递了一个奇数位数的整数,则最左边的数字不会移动。
编辑:交换 9 和 6,交换 2 和 5,交换 4 和 8。我了解如何将数字分开,但我正在寻找一些想法,如何在没有字符串或数组的情况下将它们放在一起. 任何想法表示赞赏
这是一个临时伪代码 - 希望有帮助
{
int i = 0x842569;
Do for each byte
{
for byte0
{
int byte0Swapped = swapNibble (i & 0xFF);
i = (i & 0xFFFFFF00) | byte0Swapped ;
}
}
}
哈斯克尔:
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