题目是真的不难,但是考试的时候不知道因为什么原因一直异常错误,回来重新敲了遍却通过了,心态爆炸。另一个误解的地方就是167334/(167*334)的结果正好是3,就一直以为这个也是条件,结果只要是可以整除就好了。新的c++有了to_string函数可以将整型数据转化为string,调用size方法可以更简洁。此外要注意就是除数为0的情况。
样例输入:
3
167334
2333
12345678
样例输出:
Yes
No
No
#include <cstdio>
#include <string>
#include <algorithm>
#include <iostream>
#include <math.h>
using namespace std;
int trans_str(string s){
int num = 0;
int len = s.length();
for(int i =0 ;i < len; i++){
num += pow(10,len-1-i) * (s[i] - '0');
}
return num;
}
int main(){
int n;
cin >> n;
string str, cut1, cut2;
while(n--){
cin >> str;
cut1 = str.substr(0,str.length()/2);
cut2 = str.substr(str.length()/2, str.length());
int input_1,input_2,input_3;
input_1 = trans_str(str);
input_2 = trans_str(cut1);
input_3 = trans_str(cut2);
if((input_2*input_3)&& input_1 % (input_2*input_3) == 0){
cout << "Yes\n";
}
else cout << "No\n";
}
return 0;
}