算法初步:数位反转
題目描述:
編寫一個Reverse函數(shù),聲明類似unsigned Reverse(unsigned);
要求參數(shù)只有一個32bit非負整數(shù),
同樣返回一個32bit整數(shù),但數(shù)位反轉(zhuǎn)。
輸入:
按參數(shù)傳遞,一個32bit非負數(shù),且最高最低位不為0
輸出:
按返回值輸出
難度指數(shù):☆
代碼實現(xiàn)1:
unsigned Reverse(unsigned num)
{
????unsigned result = 0;
????while(num > 0)
????{
????????result = result * 10 + num % 10;
????????num = num/10;
????}
????return result;
}
點評:現(xiàn)在想想挺簡單的,但一開始的時候,卻沒有直接這么做。
以下是兩種笨的思路,留做紀念
代碼實現(xiàn)2:
unsigned Reverse(unsigned num)
{
????unsigned *A = new unsigned[];
????unsigned result = 0;
????for(int i=0;num > 0;i ++)
????{
????????A[i] = num % 10;
????????num = num/10;
????????result = result * 10 + A[i];
????}
????return result;
}
點評:多出了一個數(shù)組,無形中增加了內(nèi)存,不爽
代碼實現(xiàn)3:
unsigned Reverse(unsigned num)
{
????char *str = new char[];
????itoa(num,str,10);
????int n,j=0;
????n = strlen(str) + 1;
????char *temp = new char[n];
????for(int i=n-2;i >= 0;i --)
????{
????????temp[j++] = str[i];
????}
????temp[n] = '\0';
????unsigned result = atoi(temp);
????return result;
}
點評:居然想到先轉(zhuǎn)成字符串,再轉(zhuǎn)回數(shù)字,真是很搞笑,但熟悉了一下itoa函數(shù),還是有點收獲,呵呵
編寫一個Reverse函數(shù),聲明類似unsigned Reverse(unsigned);
要求參數(shù)只有一個32bit非負整數(shù),
同樣返回一個32bit整數(shù),但數(shù)位反轉(zhuǎn)。
輸入:
按參數(shù)傳遞,一個32bit非負數(shù),且最高最低位不為0
輸出:
按返回值輸出
難度指數(shù):☆
代碼實現(xiàn)1:
unsigned Reverse(unsigned num)
{
????unsigned result = 0;
????while(num > 0)
????{
????????result = result * 10 + num % 10;
????????num = num/10;
????}
????return result;
}
點評:現(xiàn)在想想挺簡單的,但一開始的時候,卻沒有直接這么做。
以下是兩種笨的思路,留做紀念
代碼實現(xiàn)2:
unsigned Reverse(unsigned num)
{
????unsigned *A = new unsigned[];
????unsigned result = 0;
????for(int i=0;num > 0;i ++)
????{
????????A[i] = num % 10;
????????num = num/10;
????????result = result * 10 + A[i];
????}
????return result;
}
點評:多出了一個數(shù)組,無形中增加了內(nèi)存,不爽
代碼實現(xiàn)3:
unsigned Reverse(unsigned num)
{
????char *str = new char[];
????itoa(num,str,10);
????int n,j=0;
????n = strlen(str) + 1;
????char *temp = new char[n];
????for(int i=n-2;i >= 0;i --)
????{
????????temp[j++] = str[i];
????}
????temp[n] = '\0';
????unsigned result = atoi(temp);
????return result;
}
點評:居然想到先轉(zhuǎn)成字符串,再轉(zhuǎn)回數(shù)字,真是很搞笑,但熟悉了一下itoa函數(shù),還是有點收獲,呵呵
轉(zhuǎn)載于:https://www.cnblogs.com/tianyige/archive/2009/05/19/1459966.html
總結(jié)
- 上一篇: Ruby之旅—Ruby的Hello Wo
- 下一篇: 中国为何难学欧盟反垄断