其他分享
首页 > 其他分享> > PAT2021年春季3月份备考_按照套卷刷真题(5-1)

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