日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MiOJ 3. 大数相减(字符串减法)

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MiOJ 3. 大数相减(字符串减法) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 題目

描述

兩個(gè)長度超出常規(guī)整形變量上限的大數(shù)相減,請避免使用各語言內(nèi)置大數(shù)處理庫,如 Java.math.BigInteger 等。

輸入
有 N 行測試數(shù)據(jù),每一行有兩個(gè)代表整數(shù)的字符串 a 和 b,長度超過百位。規(guī)定 a>=b,a, b > 0。 測試結(jié)果可以用 linux 小工具 bc進(jìn)行測試是否正確。

輸出
返回表示結(jié)果整數(shù)的字符串。

輸入樣例

1231231237812739878951331231231237812739878951331231231237812739878951331231231237812739878951331231231237812739878951331231231237812739870-89513312312312378127398789513312312312378127398789513312312312378127398789513 1231231237812739878951331231231237812739878951331231231237812739878951331230000000000000000000000001-331231231237812739878951331231231

輸出樣例

1231231237812739878951331231231237812739878951331231231237812650365639018918853110413950365639018918853110413950365639018918853110413950357 1231231237812739878951331231231237812739878951331231231237812739878620099998762187260121048668768770

2. 解題

#include <bits/stdc++.h>using namespace std; void sub(string&a, string&b) {int i = a.size()-1, j = b.size()-1, carry = 0, sum;while(i >=0 || j >=0 || carry!=0){sum = (i>=0 ? a[i]-'0' : 0) - (j>=0 ? b[j]-'0' : 0) - carry;if(sum < 0){carry = 1;sum += 10;}elsecarry = 0;a[i] = sum%10 + '0';i--,j--;} } int main() {string a, b;int i;while(cin>>a){i = a.find("-");b = a.substr(i+1);a = a.substr(0,i);sub(a,b);if(a.front()=='0')cout << a.substr(1) << endl;elsecout << a << endl;}return 0; }

<1ms 運(yùn)行時(shí)間打敗了 92.99% 的 C++ 玩家!

總結(jié)

以上是生活随笔為你收集整理的MiOJ 3. 大数相减(字符串减法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。