大數相加(分正負數)

2021-08-20 01:36:15 字數 1102 閱讀 4032

給出2個大整數a,b,計算a+b的結果。

input 第1行:大數a

第2行:大數b

(a,b的長度 <= 10000 需注意:a b有可能為負數) output 輸出a + b sample input

68932147586

468711654886

sample output
537643802472

#include#include#define n 10005

int a1[n],a2[n];

char s1[n],s2[n];

int main()

else

for (i=l1-1,j=0;i>=0;i--,j++)

a1[j] = s1[i] - '0';

if (s2[0]=='-')

else

for (i=l2-1,j=0;i>=0;i--,j++)

a2[j] = s2[i] - '0';

//case 1 全為正;

if (!f1 && !f2)

}while (!a1[l]) l--;

for (;l>=0;l--)

printf("%d",a1[l]);

printf("\n");

} //csse 2 一負一正

else if (f1 && !f2)//s1為負數,s2為正數

else

break;

}if (ans)

else

}//case 3 一正一負

else if (!f1 && f2)//s1為正數,s2為負

else

break;

}if (ans)

else

}//csse 4 全為負

else

}printf("-");

while (!a1[l]) l--;

for (;l>=0;l--)

printf("%d",a1[l]);

printf("\n");

} }return 0;

}

計算機表示正負數

國內很多教材都有其為本科教材,對於計算機表示負數大概只有一句話,取反加一 並稱之為 補碼 今天偶然翻閱資料,覺得是時候徹底解決一下這個問題了。首先 二進位制補碼 只是人為定義的乙個概念,與 黃赤交角 一樣。不是在說明問題的本質,而是在解釋解決問題的辦法。計算機表示負數,運用的是 溢位原理 溢位原理,...

Lintcode 144 交錯正負數

給出乙個含有正整數和負整數的陣列,重新排列成乙個正負數交錯的陣列。給出陣列 1,2,3,4,5,6 重新排序之後,變成 1,5,2,4,3,6 或者其他任何滿足要求的答案 完成題目,且不消耗額外的空間。不需要保持正整數或者負整數原來的順序。這道題目比較難,使用o n 的演算法來做的時候使用雙指標,奇...

lintcode 144 交錯正負數

給出乙個含有正整數和負整數的陣列,重新排列成乙個正負數交錯的陣列。注意事項 不需要保持正整數或者負整數原來的順序。樣例給出陣列 1,2,3,4,5,6 重新排序之後,變成 1,5,2,4,3,6 或者其他任何滿足要求的答案 挑戰原地完成,沒有額外的空間 標籤兩根指標 思路 要實現正負交錯的陣列,原陣...