其实非递归方法也是蛮简单的。
递归方法也蛮简单就是从外向内递归处理各个数位罢了。
这里献上源代码
#include <stdio.h>
void fun(int *paInt , int n , int k)
{
if(0 == n) //到头了就返回
{
return;
}
paInt[k] = n % 10; //此处将末位保存到相应数组位置中
fun(paInt , n / 10 , k + 1);
}
void show(int *paInt , int nLen)
{
int i ;
for(i = 0; i < nLen; ++i)
{
printf("%d" , paInt[i]);
}
printf("\n");
}
int main(int argc , char *argv[])
{
int nInt , nTmp , nLen = 0;
int *paInt;
scanf("%d" , &nInt);
nTmp = nInt;
while(nTmp > 0)
{
++nLen;
nTmp /= 10;
}
paInt = malloc(nLen * sizeof(int));
fun(paInt , nInt , 0);
show(paInt , nLen);
return 0;
}