您的位置:首页 > 其它

递归---把一个整数反转处理

2015-07-10 23:38 351 查看
如果非得用递归来解决整数反转处理,只能增加一个参数 ,记录每次计算出的位数的阶。

在main()中,直接调用hjd_reverse_int_Helper(int nNum),例如:hjd_reverse_int_Helper(1230)就得到321。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//不直接调用的函数,由Helper函数来调用

//nNum:需要进行反转的数

//nPow:记录有几阶,例如123就是3阶

int hjd_reverse_int(int nNum, int nPow)

{

int nRes = 0;

if (((nNum/10)>0)&&(nPow>1))

{

nRes = (nNum%10)*pow(10, nPow-1)+hjd_reverse_int(nNum/10, nPow-1);

}

else if ((nPow==1)&&((nNum/10)<=0))

{

nRes = nNum;

}

return (nRes);

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//供用户使用的函数

int hjd_reverse_int_Helper(int nNum)

{

int nRes = 0, nPow = 1, nNumTmp = nNum;

if (nNum >= 0)

{

if ((nNum / 10) == 0)

{

nRes = nNum;

}

else //nNum>10

{

nNumTmp = nNum;

while ((nNumTmp / 10) > 0)

{

nNumTmp = nNumTmp/10;

nPow++;

}

nRes = hjd_reverse_int(nNum, nPow);

}

}

else

{

nRes = hjd_reverse_int_Helper((-1) * nNum);

nRes = (-1) * nRes;

}

return (nRes);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: