0

ライブラリ関数や、数値を逆方向に読み取って操作する簡単な方法はありますか?操作とは、新しい番号で操作することを意味します。

例えば:

2845
would become
5482

どうすればそれを達成できますか?私は、digit [i]配列を実行でき、デフォルトではnullであり、数値と同じ数の値を受け取ることができるという考えを持っていました。たとえば、452はdigit [3]を返します。digit[1]は4、digit [2]は5、digit [3]は2になります。しかし、それは非常に複雑に聞こえ、印刷はお尻の痛みのように聞こえます。 、言うまでもなく、私は新しい数字で操作できませんでした。逆方向に読み取った数が偶数かどうかを確認する必要があります。

何か案は?私はこれについてかなり前から考えていましたが、適切な解決策を見つけることができません。また、重要な場合は、C言語でEclipseIDEを使用しています。

4

3 に答える 3

3

簡単な解決策は次のとおりです。

/* only for x>0 */
int reverse(int x)
{
    int r = 0;
    while(x) {
        r = r*10 + (x%10);
        x = x/10;
    }

    return r;
}
于 2012-03-19T20:25:08.650 に答える
0

十分に小さい数を扱っている場合は、それをC文字列に読み込んで使用strrev()し、整数に変換しますか?「逆方向に読み取った数が偶数かどうかを確認する」だけの場合でも、実際に行う必要があるのは、最初の文字がであるかどうかを確認することだけです'0', '2', '4', '6', or '8'

于 2012-03-19T20:23:22.733 に答える
0

sprintf()を使用してchar *に変換し、簡単な算術演算で反転してから、strtol()を使用して再度変換します。

于 2012-03-19T20:24:47.067 に答える