之前在做pat的時候,總是會遇到有很長的數字要逐位處理,這種時候一般有兩種方法:
1.用int,long,以及對應的unsighed型別儲存
long number;
scanf
("%ld"
,&number)
;for
(int i=
0; i)
2.用字串接收數字,字串中的每一位字元對應數字的每一位數,利用ascii表得到每一位數
scanf
("%d"
,&n)
;//n是數字的位數
char number[n]
;//字串形式的數字
scanf
("%s"
, number)
;for
(int i=
0; i)
一般如果要處理的數字只有幾位數,就用方法1,數字位數很多(比如100000位)則只能使用字串,但我很疑惑到底要數字大到什麼程度才非要使用字串呢。於是查了一下short、int、long、unsighed int、unsighed short、unsighed long各自的表示範圍:
1.首先,short型別為半個機器字長,int型別為乙個機器字長,而 long型別為乙個或兩個機器字長(以32位機器為例)
2.short:-32768到32767
unsighed short:0到65535
int:-2147483648到2147483647
unsighed int:0到4294967295
long:-922 3372 0368 5477 5808到9223372036854775807
unsighed long:0到18446744073709551615
可見最長的unsighed long長達20位,用億這個概念的話,好像是百億億級別,但這個仍然遠遠比不上字串所能表示的長度。
此外還有關鍵字longlong,表示範圍和long一樣,都是10^19級別
數字在10位以內,可以用int型別的變數來處理,超過10位最好用字串
C 的string逐位處理效率比較
今天看到乙個對string做逐位處理的 我看見 使用指標來指向string,我就在想為什麼不用中括號,型如string s s i 這種操作。想到這個 作者一向以效率優先考慮,於是我測試了一下效率,果不其然。哈哈 include include include include include inc...
需要注意的問題
決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...
const需要注意的
1.對於函式後邊新增const後,函式成為const型別,該函式中不允許對類中成員進行修改,可以認為是在該函式中,類成為了const型別。另外要注意的是,const函式中只能呼叫const型別的函式。2.對於const型別的變數來說,只能把const的賦值給非const,不能把非const賦值給co...