bool isPerfectSquare(int num) {
    if(num==1) return true;
    int head=1,tail=num-1;
    while(head<=tail){
        int mid=(head+tail)/2;
        long  smid=pow(mid,2);
        if(smid>num){
            tail=mid-1;
        }else if(smid<num){
            head=mid+1;
        }else{
            return true;
        }
    }
    return false;
}

二分查找多好得方法啊。