ドメイン[0,9]にi
とj
を制限する場合は、10×10のルックアップテーブルは、パフォーマンスの高いソリューションのようになります。
long concatenate_lookup[10][10] = {
{ 0L, 1L, 12L, 123L, 1234L, 12345L, 123456L, 1234567L, 12345678L, 123456789L},
{ 10L, 1L, 12L, 123L, 1234L, 12345L, 123456L, 1234567L, 12345678L, 123456789L},
{ 210L, 21L, 2L, 23L, 234L, 2345L, 23456L, 234567L, 2345678L, 23456789L},
{L, 321L, 32L, 3L, 34L, 345L, 3456L, 34567L, 345678L, 3456789L},
{L, 4321L, 432L, 43L, 4L, 45L, 456L, 4567L, 45678L, 456789L},
{L, 54321L, 5432L, 543L, 54L, 5L, 56L, 567L, 5678L, 56789L},
{L, 654321L, 65432L, 6543L, 654L, 65L, 6L, 67L, 678L, 6789L},
{L, 7654321L, 765432L, 76543L, 7654L, 765L, 76L, 7L, 78L, 789L},
{L, 87654321L, 8765432L, 876543L, 87654L, 8765L, 876L, 87L, 8L, 89L},
{L, 987654321L, 98765432L, 9876543L, 987654L, 98765L, 9876L, 987L, 98L, 9L}
};
long concatenate(long i, long j) {
assert(i>=0 && i<=9 && j>=0 && j<=9);
return concatenate_lookup[i][j];
} // end concatenate()
フルを処理するためにlong
の代わりint
を使用する必要があります可能な出力の範囲。
私は 'count'と呼ばれるintを持つことを考えていましたが、カウントの増分として前の数にその数を加えました。したがって、 'i'が3で' j'が5の場合、 'count'も' i'と等しくなり、 'j'に達するまで数字を追加します。 –
'i'が3、' j'が '5'の場合に期待される出力は? – Pang
@Pang、 '345'私が思ったばかげたものを試してみてください。 :P –