题目:
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 Yes
if it is such a number, or No
if not.
Sample Input:
3
167334
2333
12345678
Sample Output:
Yes
No
No
易错:
c++运算符优先级 !的优先级比%大 https://blog.csdn.net/nicky_zs/article/details/4053146
浮点错误:要注意除数为0的情况
代码:
#include<stdio.h> #include<iostream> using namespace std; int main(){ int n; scanf("%d", &n); for(int i = 0; i < n; i++){ int z, t, num = 0; scanf("%d", &z); t = z; while(t != 0){ t /= 10; num++; } int w = 1; for(int j = 0; j < num / 2; j++){ w *= 10; } int a = z / w; int b = z % w; int c = a * b; if(c != 0 && z % c == 0){ printf("Yes\n"); }else{ printf("No\n"); } } return 0; }
标签:Cut,测试点,No,int,1132,num,167334,each,integer From: https://www.cnblogs.com/yccy/p/17702854.html