《剑指offer》c++版本 16.数值的整数次方
生活随笔
收集整理的這篇文章主要介紹了
《剑指offer》c++版本 16.数值的整数次方
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如題:
題目要求一個數的N次方,且不需要考慮大數,看似簡單,for循環搞定。仔細詳細,問題還挺多。比如,base為0或者指數為負,同時浮點數和0比較也是個問題。很多時候,面試官出的題目看似簡單,但如果不加考慮,直接上手就寫代碼,很容易出現遺漏現象,在面試這種場合,很容易給面試官留下水平低下的映像,面試本來就是一次性的發揮,所以務必小心謹慎,拿到題目想到方案后,一定要考慮各種邊界情況以及異常輸入。
本題需要注意參數為0的情況下怎么處理以及怎么判斷浮點數為0,通常對于整型可以直接使用"=="或者"!="來比較,但是,浮點數是有精度限制的,不能直接這樣比,怎么比看下面的代碼,也算是一個經典的考點。
本題c++編碼如下:
//注意點:浮點數不能和0直接比較 //特殊情況:1. base為0. 2. 指數為0 //class Solution { public:double Power(double base, int exponent) {bool flag = (exponent > 0) ? false : true;//base為0的話直接返回0if (fabs(base-0.0) <= __DBL_EPSILON__)return base;//指數為0返回1,為1返回自身if (exponent == 0)return 1.0;if (exponent == 1)return base;//指數為負的話取反。exponent = (exponent > 0) ? exponent : (0-exponent);double result = base;for (int i = 2; i <= exponent; i++){result *= base;}//如果指數為負,此時就倒數return (flag ? (1.0/result) : result); } };=============================================================================================
Linux應用程序、內核、驅動、后臺開發交流討論群(745510310),感興趣的同學可以加群討論、交流、資料查找等,前進的道路上,你不是一個人奧^_^。
?
總結
以上是生活随笔為你收集整理的《剑指offer》c++版本 16.数值的整数次方的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指offer》c++版本 15.二进
- 下一篇: 《剑指offer》c++版本 17.打印