1016 部分A+B (15分)

// 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

#include

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

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;

}

你可能感兴趣的:(1016 部分A+B (15分))