// B1016 部分A+B.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
——————————
wrong:
1、Int的范围也没发现,而且long long 转为Int居然没发现,sum没发现,temp也没发现
2、数字是减0吗?是的,
3、Pa的处理忘了,pa = pa * 10 + da
——————————
考察:
//1、int范围
//2、pa = pa * 10 + da,穷举得出pa
——————————
learn:
1、用余10取每一位更好
#include <iostream>
#include <cstring>
using namespace std;
//以字符串记录,然后扫描,记录个数,
int main()
{
string A, B;
long long Da, Db;
long long pa = 0 , pb = 0;
int temp;
cin >> A >> Da >> B >> Db;
for (int i = 0;i < A.length();i++) {
temp = A[i] - '0';
if (Da == temp) {
pa = Da + pa * 10;
}
}
for (int j = 0; j < B.length();j++) {
temp = B[j] - '0';
if (temp == Db) {
pb = Db + pb * 10;
}
}
long long sum = pb + pa;
cout << sum;
return 0;
}
——————————————
PAT答案
#include <iostream>
int main() {
long long a, b, da, db;
scanf_s("%lld%lld%lld%lld", &a, &da, &b, &db);
long long pa = 0, pb = 0;
while (a != 0) {
if (a % 10 == da) pa = pa * 10 + da;
a = a / 10;
}
while (b != 0) {
if (b % 10 == db) pb = pb * 10 + db;
b = b / 10;
}
printf("%lld", pb + pa);
return 0;
}