编程以在不使用数组的情况下反转数字

时间:2014-09-18 18:48:17

标签: c logic

这是我使用的代码。它运作完美,但我不明白为什么它有效。我一直在改变原来的逻辑,直到我开始在计数器循环中使用-1。

#include<stdio.h>
#include<math.h>

int main(){
    int number, reverse, sum =0;
    scanf("%d", &number);
    int temp = number;
    int ctr;

    for(ctr = -1; temp!=0; ctr++)
        temp = temp/10;

    while(number)
    {
        sum = sum + (number%10 * (pow(10, ctr--)));
        number = number/10; 
    }
    printf("%d", sum);

    return 0;
}

1 个答案:

答案 0 :(得分:1)

相同的基础数学,但更容易理解:

unsigned int number = 123456789;
unsigned int reversed = 0;
do {
    reversed *= 10;
    reversed += number % 10;
    number /= 10; 
} while (number > 0);