1132. Cut Integer (20)
Cutting an integer means to cut a K digits long 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 x 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 12345678Sample Output:
Yes No No
实力不够,考试的时候第一题都没写出来。。。。
以前没遇到过浮点错误。。。 以为是什么新错误提示。。。
浮点错误 | 您的程序运行时发生浮点错误,比如遇到了除以 0 的情况 |
浮点错误 | 您的程序运行时发生浮点错误,比如遇到了除以 0 的情况 |
浮点错误 | 您的程序运行时发生浮点错误,比如遇到了除以 0 的情况 |
考试的时候没有考虑 除数 为 0 的情况。。。草。。。
#include<stdio.h>
#include<string.h>
int main(){
int n,i,j,sum1,sum2,sum3,len1,len2;
char s[20];
scanf("%d",&n);
getchar();
for(i=0;i<n;i++){
gets(s);
len1=strlen(s);
len2=len1/2;
sum1=0;
sum2=0;
sum3=0;
for(j=0;j<len2;j++){
sum1=sum1*10+s[j]-'0';
}
for(j=len2;j<len1;j++){
sum2=sum2*10+s[j]-'0';
}
for(j=0;j<len1;j++){
sum3=sum3*10+s[j]-'0';
}
if(sum1*sum2!=0){
if(sum3%(sum1*sum2)==0){
printf("Yes\n");
}
else{
printf("No\n");
}
}
else{
printf("No\n");
}
}
}