PAT2021年春季3月份备考_按照套卷刷真题(5-1)
作者:互联网
题干:1136 A Delayed Palindrome (20 分)
题解:这题做了20分钟,拿了14分,看了别人的满分答案,错在两个地方,一个没有考虑是1000位的大整数相加,需要开发一个独立的函数,还有一项是可能第一个数直接输出进来可能就是对称额数。。。。
这些错误其实无伤大雅了,因为在考场上面注意到第一个错误的可能性还比较大,但是就算注意到编写这种函数也是要花费不少时间的。。。。第二个错误更不可能注意到了。。。所以14分是一个挺务实的分数的。。。没有必要追求完美的答案,然后在那里死扣。。。。
如果你的程度和我差不多,你更应该注意的是我的代码里面注释为“debug part”的部分,如果没有处理好这些问题,你的程序本身都是错的,对那些小细节的注意根本无从谈起
// A1136.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
FILE* s;//debug part
freopen_s(&s, "in.txt", "r", stdin);
#endif // !ONLINE_JUDGE
string a;
cin >> a;
bool flag;
for (int i = 0; i < 10; i++) {
flag = true;//debug part
string b(a);
reverse(b.begin(), b.end());
int sum = stoi(a) + stoi(b);
string c = to_string(sum);
for (int i = 0, j = c.size()-1; i <= j; i++, j--) {//debug part
if (c[i] != c[j]) {
flag = false;//debug part
}
}
cout << a << " + " << b << " = " << c << endl;
a = c;
if (flag)break; //debug part
}
if (flag)cout << a << " is a palindromic number.\n";
else cout << "Not found in 10 iterations.\n";
return 0;
}
标签:PAT2021,20,string,真题,int,套卷,part,注意,debug 来源: https://blog.csdn.net/qq_30753921/article/details/113818041