✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:PAT题解集合
📝原题地址:题目详情 - 1132 Cut Integer (pintia.cn)
🔑中文翻译:切整数
📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家都能取得满分!
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
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:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤ 20). Then N lines follow, each gives an integer Z (10 ≤ Z <231). It is guaranteed that the number of digits of Z is an even number.
Output Specification:
For each case, print a single line
Yesif it is such a number, orNoif not.Sample Input:
3 167334 2333 12345678Sample Output:
Yes No No
给定一个数 N ,它可以切分成两个整数 a 和 b ,其中 a 是等于 N 的前半部分而 b 是后半部分,例如 167334 划分成 a=167 和 b=334 。
我们需要判断 N 是否可以整除 a*b 。
具体思路如下:
num ,并计算其长度。a 和 b 。num 是否能整除 a*b 输出对应结果。#include
using namespace std;int main()
{int T;cin >> T;while (T--){string num;cin >> num;//切分整数int len = num.size();int a = stoi(num.substr(0, len / 2));int b = stoi(num.substr(len / 2));int n = stoi(num);if (a * b && n % (a * b) == 0) puts("Yes");else puts("No");}return 0;
}