當前位置:編程學習大全網 - 電腦編程 - C++壹道簡單算法題,大佬們看下為什麽我的代碼不能滿分通過?

C++壹道簡單算法題,大佬們看下為什麽我的代碼不能滿分通過?

C++算法題:

按題目的意思n<=2*10^9

圖中紅色框內代碼i*j是有可能超過這個範圍的,造成整數最大溢出得不到正確結果。應該改為壹個for循環,從最大的數開始往小的數搜索,不要用乘法,用除法。

for(int i = n-1; n >= sqrt(n); i--)

{

if(n%i==0)

maxNum= i;

break;

}

當然這些要保證輸入的n壹定得滿足只有兩個質數相乘等於n,不然需要增加判斷是否為質數。

  • 上一篇:如何檢查橫河dcs的位置編號
  • 下一篇:3年經驗的Java,現在有機會轉ABAP,我要轉嗎
  • copyright 2024編程學習大全網