丢失的数字(比较骚的做法)

小J找到了他小时候的数学作业,但纸张已泛黄,部分数字难以辨认。现在,通过算法的力量,我们将帮助小J恢复这些缺失的数字,解决加法问题中的挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小J无意间翻到了自己上小学时候的数学作业,上面有着他在学习加法时候的回忆。 

  

 799 

+ 239 

------- 

 1038 

  

然而,作业由于长时间存放在地下室,加法算式中的某一个数字已经斑驳泛黄,有的是“加数”中缺失了,有的是“和”中缺失了,令小J无法识别。现在小J想请你帮忙,将缺失的数字识别出来。 

 

输入

三行字符串,表示加法运算中的两个“加数”以及它们的“和”,其中缺失的数字用大写字符X代替。其中任意一个字符串的长度L满足1=<L<1000。 

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define ll long long
#define mem(ar,num) memset(ar,num,sizeof(ar))
#define me(ar) memset(ar,0,sizeof(ar))
#define lowbit(x) (x&(-x))
#define IOS ios::sync_with_stdio(false)
#define DEBUG cout<<endl<<"DEBUG"<<endl;
#define mod 19260817
#define N 100005
#define MP make_pair
#define PI pair<int,int>
using namespace std;
int calc(string a) {
    int jsa = 0;
    for(int i = 0; i < a.size(); i++) {
        jsa = (jsa * 10) % mod;
        jsa = (jsa + a[i] - '0') % mod;
    }
    return jsa;
}
int main() {
    string a[3];
    cin >> a[0] >> a[1] >> a[2];
    int flagx, flagy;
    for(int i = 0; i < 3; i++)
        for(int j = 0; j < a[i].size(); j++) {
            if(a[i][j] == 'X') {
                flagx = i;
                flagy = j;
            }
        }
    for(int i = 0; i <= 9; i++) {
        a[flagx][flagy] = '0' + i;
        if((calc(a[0]) + calc(a[1])) % mod == calc(a[2]))
            return 0 * printf("%d\n", i);
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值