PAT甲级1132Cut Integer

题目链接

https://pintia.cn/problem-sets/994805342720868352/problems/994805347145859072

题解

给n个k位(k为偶数)的整数z,将其分成a和b,判断z/(a*b)是不是一个整数即可

这里要注意a和b是否为0,这是个边界情况,如果没有处理这个边界情况,有2个测试点不能过,只能得14分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Problem: PAT Advanced 1132
// URL: https://pintia.cn/problem-sets/994805342720868352/problems/994805347145859072
// Tags: Math

#include <iostream>
#include <string>
using namespace std;

int main()
{
int n;
cin >> n;
while (n--){
string z;
cin >> z;
string a = z.substr(0, z.length() / 2), b = z.substr(z.length() / 2, z.length() / 2);
int mul = stoi(a) * stoi(b);
if (mul != 0 && stoi(z) % mul == 0){
cout << "Yes\n";
}
else{
cout << "No\n";
}
}
return 0;
}

作者:@臭咸鱼

转载请注明出处:https://www.cnblogs.com/chouxianyu/

欢迎讨论和交流!