軟件測試學習-1
阿新 • • 發佈:2018-03-12
應該 cee erro 第一時間 時間 exc desc 測試 提示
題目:
Briefly describe an error from your past projects that you have recently completed or an error from other projects which impress you most. State the reason, impact of the error and how did you find it.
說到近期的印象比較深的error,第一時間想到的是某次在做acm題的時候,需要用到判斷某個數m是否是素數。m的數據範圍應該是超過10的12次方了。
我的錯誤函數:
1 bool prime(lli m){2 if(m == 1) return 0; 3 for(int i = 2;i *i <= m;i++){ 4 if(m % i == 0) return 0; 5 } 6 return 1; 7 }
然後在交題後卻得到了time exceed的提示,大概算了一下復雜度,感覺應該不會超時的,於是感覺是某些地方出邏輯問題了。於是開始一個函數一個函數排查,最後發現在prime這個函數遲遲沒有結束。。
才發現i*i這裏爆精度了,i是int型的,i*i也默認是int型。。。
改成long long int 就OK了。
軟件測試學習-1