1. 程式人生 > >計蒜客題目 X的平方根

計蒜客題目 X的平方根

設計函式int sqrt(int x),計算 xx 的平方根。

輸入格式

輸入一個 整數 xx,輸出它的平方根。直到碰到檔案結束符(EOF)為止。

輸出格式

對於每組輸入,輸出一行一個整數,表示輸入整數的平方根。

樣例輸入

1
2
3
4
5
6
7
8
9

樣例輸出

1
1
1
2
2
2
2
2
3
#include<iostream>

using namespace std;

int sqrt(int x)
{
    unsigned long low=1,high=x,mid=(low+high)/2;
    while(low<=high){
        mid=(low+high)/2;
        if (mid*mid==x) return mid;
        else if (mid*mid<x) {low=mid+1; mid=(low+high)/2;}
        else if (mid*mid>x) {high=mid-1; mid=(low+high)/2;}
    }
    return mid;
}

int main()
{
    int n;
    while(cin>>n){
        cout<<sqrt(n)<<endl;
    }
    
    return 0;
}
思路:用二分查詢。總結:一開始的時候用的線性查詢,沒AC,提示超時,後來改換二分查詢法,還是超時……左思右想不明白,後來搜了一些其他網友的答案,發現思路相似,我的仍然AC不了,最後懷疑可能是測試資料的位數較大,把sqrt函式裡面輸入的int型別換成了unsigned long型別,一下子AC了,心力憔悴……得到教訓:平方根,沒有負數輸入的,就用unsigned型別。還有,空間一般足夠的,變數申明型別的時候就儘量申明大一些,不要給自己找麻煩!

相關推薦

題目 X平方根

設計函式int sqrt(int x),計算 xx 的平方根。輸入格式輸入一個 整數 xx,輸出它的平方根。直到碰到檔案結束符(EOF)為止。輸出格式對於每組輸入,輸出一行一個整數,表示輸入整數的平方根

X平方根

題目描述 設計函式int sqrt(int x),計算 x的平方根。 輸入格式 輸入一個 整數 x,輸出它的平方根。直到碰到檔案結束符(EOF)為止。輸出格式 對於每組輸入,輸出一行一個整數,表示輸入整數的平方根。 樣例輸入 1 2 3 4 5 6 7 8 9樣例輸出  1

題目 跳躍遊戲

給定一個非負整數陣列,假定你的初始位置為陣列第一個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。請確認你是否能夠跳躍到陣列的最後一個下標。例如:A = [2,3,1,1,4]A=[2,3,1,1,4] 能夠跳躍到最後一個下標,輸出true;A = [3,2,1,0

題目 法師康的工人

三個法師康的工人每天早上6點到工廠開始到三條產品生產線上組裝桔子手機。第一個工人在200時刻開始(從6點開始計時,以秒作為單位)在生產線上開始生產,一直到1000時刻。第二個工人,在700時刻開始,在1100時刻結束。第三個工人從1500時刻工作到2100時刻。期間最長至少有

x平方根

設計函式int sqrt(int x),計算 xxx 的平方根。 輸入格式 輸入一個 整數 xxx,輸出它的平方根。直到碰到檔案結束符(EOF)為止。 輸出格式 對於每組輸入,輸出一行一個整數,表示輸入整數的平方根。 樣例輸入 1 2 3 4 5 6 7 8 9 樣例輸出

系列】挑戰難題17:x平方根

設計函式int sqrt(int x),計算x的平方根。 格式:    輸入一個數x,輸出它的平方根。直到碰到結束符號為止。    千萬注意:是int型別哦~    輸入可以如下操作: while(cin>>x) 或者 while(scanf("%d", &a

2017 NOIP 提高組模擬賽(四)Day1 T1 小X的質數 線性篩素數

範圍 線性篩 mat 需要 接下來 包含 能夠 數字 bottom 小 X 是一位熱愛數學的男孩子,在茫茫的數字中,他對質數更有一種獨特的情感。小 X 認為,質數是一切自然數起源的地方。 在小 X 的認知裏,質數是除了本身和 1 以外,沒有其他因數的數字。 但由於小 X

2018藍橋杯省賽B組模擬賽(一)題目及解析(未完待續)

一、題目列表 A. 結果填空:年齡         分值: 3 B. 結果填空:開關燈     分值: 7 C. 結果填空:U型數字  分值: 9 D. 程式碼填空:LIS         分值: 11 E. 程式碼填空:全排列   分值: 13 F. 結果填空:數獨  

:2018 藍橋杯省賽 B 組模擬賽(五)題目題解

A.結果填空:矩陣求和#include <iostream> #include <stdio.h> using namespace std; const int n = 101; long long a[110][110]; int main()

-題庫-三值排序

pac 一個數 順序 col 裏的 efault 開始 algo div 題目 排序是一種很頻繁的計算任務。一個實際的例子是,當我們給某項競賽的優勝者按金銀銅牌排序的時候。在這個任務中可能的值只有三種1,2和3。我們用交換的方法把他排成升序的。 寫一個程序計算出,計算出的

15430 XOR Queries(Trie處理位運算問題)

ron 二進制 進制 插入 我們 整數 容易 位置 xor 題意: 給出一個長度為n的數組C,回答m個形式為(L, R, A, B)的詢問, 含義為存在多少個不同的數組下標k屬於[L, R]滿足C[k] XOR A >= B(式中XOR為異或運算)。 T組測試數

騰訊課堂的物理實驗(2017初賽第三場)

text ram amp tex 方向 top names rip des A題 在騰訊課堂的物理課上,進行了一個有趣的物理實驗。 在一個長度為 LL 米的光滑軌道上,小車 A 在 00 時刻以 1\mathrm{m/s}1m/s 的速度從左端出發向右運動,小車 B 在

UCloud 的安全秘鑰 (初賽第五場)(待解決)

限制 一行 序列 0ms n) content mes 初賽 -o 20.7% 1200ms 262144K 每個 UCloud 用戶會構造一個由數字序列組成的秘鑰,用於對服務器進行各種操作。作為一家安全可信的雲計算平臺,秘鑰的安全性至關重要。因此,UCloud

UCloud 機房的網絡搭建(初賽第五場)

出口 表示 -s box ace res += 建立 tps UCloud 剛剛建立一個新機房,近日正在進行網絡搭建。機房內有 nn 臺服務器和 mm 個分線器,整個機房只有一個網線出口。分線器的作用是將一根網線轉換成多根網線。蒜頭君也知道每個分線器輸出的最大網線根數(不

第五場 UCloud 的安全秘鑰(中等) (尺取遊標法

sca http 數組 desc 出現 滿足 說明 tom tor 每個 UCloud 用戶會構造一個由數字序列組成的秘鑰,用於對服務器進行各種操作。作為一家安全可信的雲計算平臺,秘鑰的安全性至關重要。因此,UCloud 每年會對用戶的秘鑰進行安全性評估,具體的評估方法如

UCloud 的安全秘鑰 ——(hash)

pan ref namespace mes 能夠 targe com print lower   題目鏈接:https://nanti.jisuanke.com/t/15769。   題意是求可以變換位置以後相同的子串有多少個,那麽做法是只要每個數字的平方和,立方和以及四次

429(騰訊手機地圖-pi的精確值)

sel log 相對 ios cal iss color 什麽 ++ 騰訊手機地圖的定位功能用到了用戶手機的多種信號。這當中有的信號的作用範圍近。有的信號作用的範圍則遠一些。有的信號相對於用戶在不同的方位強度是不同的。有的則是在不論什麽一個方向上信號強度都一

課程學分總數

int ane 題目 scan top const turn fine desc 題目鏈接 課程學分總數 很基礎的樹型DP。註意輸入數據可能是森林而不是完整的一棵樹。 那麽給所有沒有祖先的點加一個公共的根就好了。 #include <bits

[NOIP模擬賽]2017.7.28Day1回顧反思總結

n) 模擬 查詢 同時 結點 reg etc mes 停止 D1T1 打地鼠 題目鏈接 反思- 比賽得分-0 思考: 比賽時,以為T1是一道常規模擬題目,沒怎麽看數據範圍。直接手動模擬,模擬完之後太自信也沒有造數據Hack自己的程序。直接導致爆0。同時發現自己對二

--爬樓梯 (動態規劃)

tle nbsp vector main long 3.1 false n) 方法 假設你現在正在爬樓梯,樓梯有 nn 級。每次你只能爬 11 級或者 22 級,那麽你有多少種方法爬到樓梯的頂部? 輸入格式 第一行輸入一個整數 n(1\leq n \leq 50)n