c程序反转数字

san*_*101 1 c reverse

我正在寻找C反向数字的程序,如下所示:

如果我输入:

123456

那么结果将是:

654321

请帮我.

Ric*_*ton 11

这是解决这个复杂问题的简单方法:

#include <stdio.h>

int main()
{
    int ch;
    ch = getchar();
    if (ch != '\n') {
        main();
        printf("%c", ch);
    }
}
Run Code Online (Sandbox Code Playgroud)


输出换行符的新版本:

#include <stdio.h>
#include <stdlib.h>

static void newline(void)
{
    printf("\n");
}

int main()
{
    int ch;
    ch = getchar();
    if (ch != '\n') {
        main();
        printf("%c", ch);
    } else {
        atexit(newline);
    }
}
Run Code Online (Sandbox Code Playgroud)


P D*_*ddy 7

如果你的教授对你的表现进行评分,那么在另一个问题中尝试ggf31416解决这个问题的方法:

int FastReverse(int num) {
    int res = 0;
    int q = (int)((214748365L * num) >> 31);
    int rm = num - 10 * q;
    num = q;
    if (rm == 0) return -1;
    res = res * 10 + rm;
    while (num > 0) {
       q = (int)((214748365L * num) >> 31);
       rm = num - 10 * q;
       num = q;
       res = res * 10 + rm;
    }
    return res;
}
Run Code Online (Sandbox Code Playgroud)

优化®

绝对时,必须要做到这一纳秒.


sep*_*p2k 5

使用% 10得到的最后一位.输出它.将数字除以10得到除最后一位数之外的所有数字.用% 10得到的,最后的数字.依此类推,直到数字变为0.