一、题目描述
原题链接
Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long integers A and B. For example, after cutting Z = 167334, we have A = 167 and B = 334. It is interesting to see that Z can be devided by the product of A and B, as 167334 / (167 × 334) = 3. Given an integer Z, you are supposed to test if it is such an integer.
Input Specification:
Output Specification:
Sample Input:
3
167334
2333
12345678
Sample Output:
Yes
No
No
二、解题思路
掌握substr函数和stoi函数即可很容易地做出来。以字符串格式输入数据,随后分为前半部分和后半部分,用stoi函数把字符串转换成整型,进行计算判别即可。
三、AC代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int N;
scanf("%d", &N);
for(int i=0; i<N; i++)
{
string str, tmp1, tmp2;
cin >> str;
int sze = str.size();
tmp1 = str.substr(0, sze/2);
tmp2 = str.substr(sze/2, sze/2);
int total = stoi(str), f1 = stoi(tmp1), f2 = stoi(tmp2);
if(f1*f2 != 0 && total % (f1 * f2) == 0) printf("Yes\n");
else printf("No\n");
}
return 0;
}