問題描述 :
計算兩個實數相加的結果。
輸入的實數滿足如下要求: (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 任務...