1091 N-自守数 (15 分)
思路:接收到一个数之后,从1到9进行遍历。然后分别让相乘之后的数(t)变成字符串,想成之前的数(k)变成字符串,再根据字符串k的长度切割字符串t得到新的字符串,判断是否与字符串k相等。代码如下:
#include<string>
using namespace std;
int main()
{
int m;
cin>>m;
while(m--)
{
int k,flag=0;
cin>>k;
for(int n=1;n<10;n++)
{
int t=n*k*k;
string st=to_string(t);
string sk=to_string(k);
string st1=st.substr(st.length()-sk.length());
if(st1==sk)
{
cout<<n<<" "<<t<<endl;
flag=1;
break;
}
}
if(!flag) cout<<"No"<<endl;
}
}