1. 程式人生 > >C語言實現整數反轉-簡練演算法

C語言實現整數反轉-簡練演算法

今天做實驗題  實現整數反轉用了pow函式,把自己坑了,pow返回值是double型,而程式中的變數全是int型。

之後知道了不用pow函式的方法,特此記錄。

思路: 先求出n的位數用i記錄,之後再加權求和。

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

int main()
{
    int i,n,m;
    while(scanf("%d",&n)!=EOF)
    {
        i=1;m=0;
        while(n/i)
            i*=10;
        while(i)
        {
            i/=10;
            m+=i*(n%10);
            n/=10;
        }
        printf("%d\n",m);
    }
    return 0;
}


 之後賀神又優化出了只用一個迴圈的方法,很不錯的方法

如下:

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

int main()
{
    int n,m;
    while(scanf("%d",&n)!=EOF)
    {
        m=0;
        while(n)
        {
            m=m*10+n%10;
            n/=10;
        }
        printf("%d\n",m);
    }
    return 0;
}