高精度减法60求调
  • 板块学术版
  • 楼主Sky_haoran
  • 当前回复12
  • 已保存回复12
  • 发布时间2024/10/15 20:29
  • 上次更新2024/10/15 21:53:06
查看原帖
高精度减法60求调
1420675
Sky_haoran楼主2024/10/15 20:29
# 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

2024/10/15 20:29
加载中...