【PAT乙级】1086 就不告诉你

做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。

53.jpg

输入格式:

输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。

输出格式:

在一行中倒着输出 A 和 B 的乘积。

输入样例:

5 7

输出样例:

53

个人思路

这题就是将两个整数的积转换成字符串,然后再逆向输出就好

有一个坑就是比如20*20 = 400,但是逆向输出只要输出4,从第一位非0开始输出

代码实现

#include <cstdio>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <vector>
#include <cmath>
#include <algorithm>
#include <iostream>
#define ll long long
#define ep 1e-5
#define INF 0x7FFFFFFF

using namespace std;

int main() {
    // 输入
    int a, b;
    cin >> a >> b;
    
    // 将积转化成字符串
    char c[10];
    sprintf(c, "%d", a*b);
    
    // 反向输出字符串,从第一位非0开始输出
    bool begin = false;
    for (int i = int(strlen(c))-1; i >= 0; i --) {
        if (c[i] != '0') {
            begin = true;
        }
        if (begin) {
            cout << c[i];
        }
    }
    cout << endl;
    
    return 0;
}

总结

学习不息,继续加油

1086~1090是今年九月份第一次尝试参加PAT乙级时做的题,那段时间刚刚写完小学期的大作业,完全没有练手,考试状态很不好,还有没做出来的,这题现在看简直太简单了,当时紧张一下还写了十几二十分钟。争取今年12月能有信心参加甲级。

猜你喜欢

转载自blog.csdn.net/qq_34586921/article/details/83476344