分析:
1.题目给了一个很混淆视听的一个例子(123)容易将位数误以为是对应位数的值
例子:
56是一个符合要求的值因为6的位数是2(即第二位)56%2=0所以是符合要求的
思想:
通过取子串的方式,获取对应位数的值例如561我就取56让2除去56判断
之后再去取561并用3除去它判断即可
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int count;
cin>>count;
string str;
bool judge;
while(count--)
{
judge=false;
cin>>str;
for(int i=2;i<=str.size();i++)//从第二个数开始取
{
string s1=str.substr(0,i);//取子串
if(stoi(s1)%s1.size()!=0)//按位数判是否符合
{
judge=true;
break;
}
}
if(!judge)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}