-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 に答える