减法神童

减法神童

描述

在科学城里住着一位减法神童,他可以在一秒钟内算出两个数相减的结果。这两个数可不是普通的数字,它们是11位以上的“庞然大物”。为了证明自己神奇的计算能力,减法神童请全城的人都来出题考自己,只要答错一题他就自愿放弃“减法神童”的称号。

你想考考减法神童吗?还是先编写一个程序帮我们算出任意两个11位以上的数相减的精确结果吧。

输入

第1行是被减数A,第2行是减数B(A,B的位数大于11,小于200)。

输出

A-B的结果。

输入样例 1 

5894379463257
1245648324567

输出样例 1

4648731138690

代码如下:

#include <bits/stdc++.h>
using namespace std;
int n,i,j,s=1,t,m,a[208],b[208],c[208];
int main() {
    string s1,s2;
    cin>>s1>>s2;
    if(s2.size()>s1.size()||s2.size()==s1.size()&&s2>s1)
    {
        cout<<"-";
        swap(s1,s2);
    } 
    n=s1.size();
    m=s2.size();
    for(i=1;i<=n;i++) a[i]=s1[n-i]-'0';
    for(i=1;i<=m;i++) b[i]=s2[m-i]-'0';
    for(i=1;i<=n;i++){
        if(a[i]>=b[i]) c[i]=a[i]-b[i];
        else {
            c[i]=(a[i]+10)-b[i];
            a[i+1]--;
        }
    } 
    i=n;
    while(c[i]==0) i--;
    for(;i>=1;i--) cout<<c[i];
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值