AcWing 1625. 切整数
原题链接
简单
作者:
eveer
,
2021-08-28 00:06:32
,
所有人可见
,
阅读 299
#include<bits/stdc++.h>
using namespace std;
void is_cut(string num)
{
int a=0,b=0,c=0;//判断a是都可以整除b和c
int mid=(num.size()-1)/2;
int tmp=1;
for(int i=num.size()-1;i>=0;i--)
{
a+=(num[i]-'0')*tmp;
tmp*=10;
}
tmp=1;
for(int i=mid;i>=0;i--)
{
b+=(num[i]-'0')*tmp;
tmp*=10;
}
if(b==0)//需要特别注意的是像10这样的数字,分割得到1和0,显然我们是不能让0做分母的,直接输出No即可
{
printf("No");
return;
}
if(a%b!=0)//判断a是否可以整除b,如果b都不能整除,那么后续也就不用过多讨论了
{
printf("No");
return;
}
else a/=b;
tmp=1;
for(int i=num.size()-1;i>=mid+1;i--)
{
c+=(num[i]-'0')*tmp;
tmp*=10;
}
if(c==0)
{
printf("No");
return;
}
if(a%c!=0)
{
printf("No");
return;
}
else
printf("Yes");
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
string num;
cin>>num;
is_cut(num);
puts("");
}
return 0;
}