完全平方數

2021-10-16 12:25:42 字數 829 閱讀 9987

完全平方指用乙個整數乘以自己例如11,22,3*3等,依此類推。若乙個數能表示成某個整數的平方的形式,則稱這個數為完全平方數。完全平方數是非負數,而乙個完全平方數的項有兩個。

**如下:

class

solutionif(

!n)return

true

;else

return

false;}

};

自己寫的二分錯誤百出,在解題區看到一篇不錯的題解,原題解鏈結

class

solution

else

if(mid < num / mid)

else

if(mid == num / mid)

right = mid -1;

}}return

false;}

};

原作者的考慮真的周到。

注意點如下

1、由於正整數 num 的平方根一定落在 [1, num/2 + 1] 區間,所以二分的邊界分別取 left = 1, right = num / 2 + 1;

2、為了防止 mid * mid 太大而發生溢位(超出整型的範圍),取 mid 跟 num / mid 進行比較;

3、當查詢到 (mid == num / mid) 時,不要立即返回 true,因為 num / mid 會向下取整(例如 2 == 5 / 2),所以需要先讓 num 對 mid 取餘,如果餘數為 0,代表能整除,直接返回,否則縮小查詢的上邊界(right = mid - 1)。

完全平方數

完全平方數 time limit 10000ms memory limit 65536k total submit 44 accepted 42 case time limit 1000ms description 由1 9九個數字組成的全排列可以被看作是乙個九位數,程式設計求出這些九位數中第n個完...

完全平方數

coding utf8 python3 題目 完全平方數 乙個整數,它加上100和加上268後都是乙個完全平方數 求該數是多少 數字 1,1000 中,符合條件的數 python sqrt num.py b 1 e 1000 import sys,getopt import math defint ...

完全平方數

程式設計判斷乙個非負整數是否為完全平方數。乙個非負整數n是完全平方數當且僅當存在非負整數m,使得n m2n m 2n m2。要求如下 輸出1表示是完全平方數,輸出0表示不是。比如,輸入非負整數0時,應輸出1。不能有其他多餘的cin和cout語句。注 0是完全平方數 include using nam...