酷町求助:40分 Wrong Answer(WA)
  • 板块学术版
  • 楼主zap2727
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/29 15:50
  • 上次更新2024/5/29 19:00:14
查看原帖
酷町求助:40分 Wrong Answer(WA)
1360815
zap2727楼主2024/5/29 15:50

7990 多位数的十进制减法 经验值:1200 时间限制:1000毫秒 内存限制:128MB 题目描述 Description 给定两个十进制数a和b,其中a和b的数位最多有1000位,请你求出a-b的值。

输入描述 Input Description 第一行输入一个整数a; 第二行输入一个整数b。

输出描述 Output Description 输出一个整数,表示a-b的值。

样例输入 Sample Input 12312312312142343254354354 4124354364565765456 样例输出 Sample Output 12312308187787978688588898

#include<iostream>
using namespace std;
string A,B;
int a[1001],b[1001],s[1001],tw,t;
string jian(string A,string B){
    string f="";
    a[0]=A.size();
    b[0]=B.size();
    s[0]=max(a[0],b[0]);
    for(int i=1;i<=a[0];i++){
        a[i]=A[a[0]-i]-'0';
    }
    for(int i=1;i<=b[0];i++){
        b[i]=B[b[0]-i]-'0';
    }
    for(int i=1;i<=s[0];i++){
        s[i]=a[i]-b[i]-tw;
        tw=0;
        while(s[i]<0){
            s[i]+=10;
            tw++;
        }
        if(s[i]==0)t++;
        else t=0;
    }
    s[0]-=t;
    for(int i=s[0];i>0;i--){
        f+=char(s[i]+'0');
    }
    return f;
}
int main(){
    cin>>A>>B;
    cout<<jian(A,B);
    return 0;
}
2024/5/29 15:50
加载中...