OJ題 實數相加

2021-10-05 20:25:52 字數 1319 閱讀 9641

問題描述 :

計算兩個實數相加的結果。

輸入的實數滿足如下要求: (1)  小數點前的整數部分最多100位,(2) 小數點後的小數部分最多100位.

輸入說明 :

兩行字串,每行都是乙個合法的實數。合法的意思是指:  整數部分的值如果大於零,則最高位數字必定大於零. 如果整數部分的值為零,則整數部分只有乙個零. 小數部分尾部可以有任意多的零. 可以沒有小數部分,  此時也沒有小數點. 如果有小數點, 則至少需要有一位小數部分, 且允許是零.

輸出說明 :

相加結果。注意: 小數部分末尾如果有連續的0, 則它們都是有效數字,  不能捨去. 如果是兩個整數相加, 則結果仍為整數而沒有小數部分.

輸入範例 :

999999999991.001

8.99999999999999999999999

輸出範例 :

1000000000000.00099999999999999999999

#include

#include

#include

#define max 1000

intmain()

if(strchr

(b,'.')==

null

) rlb=0;

else

v=0;//小數字不全為0說明存在小數字的加法運算

if(rla||rlb)

for(i,j=mink;i>

0,j>

0;i--

,j--

) zd[k]

='.';}

//計算整數部分,不需再考慮小數字

i=0; j=0;

while

(a[i]

!='.'

&&a[i]

!='\0'

) i++

;while

(b[j]

!='.'

&&b[j]

!='\0'

) j++

; la=i;

lb=j;

k=la>lb?la:lb;

i=la-1;

j=lb-1;

zi[k]

='\0'

;while

(i>=

0&&j>=0)

while

(i>=0)

while

(j>=0)

if(v)

if(rla||rlb)

puts

(zi)

;return0;

}

''應該還有簡單一點的方法的,這樣好複雜

OJ 陣列相關OJ刷題

1 原地移除陣列中所有的元素val,要求時間複雜度為o n 空間複雜度為o 1 給你乙個陣列 nums 和乙個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除後陣列的新長度。不要使用額外的陣列空間,你必須僅使用 o 1 額外空間並 原地 修改輸入陣列。元素的順序可以改變。你不需...

oj判題技巧

2.oj有嚴格的輸入輸出格式。3.oj只會嚴格的比較輸入和輸出格式,簡單的比較檔案。4.輸入格式 1.預先不輸入資料的組數,讀到檔案末尾 求a b c while scanf d d a,b eof c while cin a b 2.預先知道組數和只有一組的輸入和平常的程式設計一樣。5.注意細節,...

OJ解碼編碼題

設有乙個整型陣列a中存放n個互不相同的整數,a中元素取值範圍為0到n 1。a陣列的編碼定義如下 a 0 的編碼為0,放入b 0 ai的編碼為在a 0 a 1 a i 1 中比a i 的值小的數的個數,放入b i 例如 a 6 時,則b 6 你有兩個任務,任務一是編碼,即已知n與陣列a,求陣列b 任務...