# 2. A - B
题目ID:3280必做题100分
时间限制: 200ms
空间限制: 32768kB
题目描述:
给你两个十进制数,数位最多有1000位,求他们的差
输入格式:
第一行输入一个整数
第二行输入一个整数
输出格式:
输出一个整数
样例输入:
12312312312142343254354354
4124354364565765456
样例输出:
12312308187787978688588898
约定:
A,B都是非负整数
60code:
#include <bits/stdc++.h>
using namespace std;
int main(){
string s1, s2;
cin >> s1 >> s2;
int len1 = s1.size(), len2 = s2.size();
int a[1005] = {0}, b[1005] = {0}, ans[1005] = {0};
int maxlen = max(len1, len2);
if(len2>len1||(len1==len2&&s1<s2)){
swap(s1,s2);
cout << "-";
}
for (int i = 0; i < len1; i++) {
a[i] = s1[len1 - 1 - i] - '0';
}
for (int i = 0; i < len2; i++) {
b[i] = s2[len2 - 1 - i] - '0';
}
for(int i=0;i<=len1;i++){
ans[i]=a[i]-b[i];
}
for(int i=0;i<=len1;i++){
if(ans[i]<0){
ans[i]+=10;
ans[i+1]-=1;
}
}
while(ans[len1-1]==0&&len1>0) len1--;
if(len1==0)cout << 0;
for(int i=len1-1;i>=0;i--)cout << ans[i];
return 0;
}
样例: 输入:```
801957066605269513129606969324264305248789708131460218436380611409624096083765582918007534648361942288902233714275859869422859233041487000436201137662118254449046744918345386551557710396043374401071697830274821713869128045033227724365889274885135289517152553214274838319347519986728445635741909779200073680892820699478267758938112069554875944943801347201529186575155599108900448016469235771425109074690754014680326063028142843380497517801640429358949436231198040239598366023524027813969236869455423399369037563578617911611165790187158820660607965031283902128324964003191179021468186818902385757522819831620840320025892600670986598019478825199078452381046259258885324489552433889843460673872954593623187715139934126826647133956270795925674690039939923596394330209462822592912266432365332769063823585003615693307159063412604343
56253913397157265080715499443429780109509493540648061656243000761491648475573467961679787766185812958992467276732096863672499246784826682320552415953032998255830265848935334714974637095379232603348879132734412624433439627496501772322932719439790801452892480039822127004595392322923038010905597187444026971295339828907103617574154820646508393414155229999364054790710209905001385745993181344679177977171993563014001011686916752340330340769401586714521088552060917014624966551686973386308643126745574655844444027106975274187101753481224376719222736223601259911874199789374726184922081161101576784151365354942875043814798765906819094535948750578841980187884586639011129584937775147902143754110451250895279590340309931600089531716729996854250364555042743688022803068548220878029333495471200558653677346139724458262358412761320437228415299938819260186483558451419114696724784866993097114541200734076367326725101139534122481157928858517642634142200896760321387203926467571101823596213156250938221841967351 输出: -56253913397157265080715499443429780109509493540648061656243000761491648475573467961679787766185812958992467276732096863672499246784826682320552415953032998255830265848935333913017570490109719473741909808470107375643731496036283335942321309815694717687309562032287478642653103420689323735045727764584793929808339392705965955455900371599763475068768678441653658747335808833303555471171467475551132943944269197124726126551627235187777126494563267367001101823615281272715187351613292493487943648477815717732374472231030330385754551952037801563623627323153243442638428364265651494168066480775513756008521974445357242174369406957382863337908510980475956663856772669774260129514375778864580175492539639729489403181489270992124500432827868529286361363863722219835984166162463355209501874630880532761076675153126438783533213682868056182156041053494770634049668607958440823770191243805381974607073907429233370454305213859432441218005262123312424679378303848054954838593698507278238592597462943779158429363008