PAT乙级 1091 N-自守数 (15分)
这题怎么说呢,可以算是送分题,主要考察你对函数的掌握熟悉度,PAT当中的string类型转int类型现有的函数如果你掌握到位了,可以省去很多编程上的时间,让不便变方便。贴上本人原创完美的AC代码。
#include<iostream>
#include<string>
using namespace std;
int main() {
int num,sx[40],sx1[40];
scanf("%d",&num);
for(int i=0;i<num;i++)
{
scanf("%d",&sx[i]);
string temp1;
temp1 = to_string(sx[i]);
int longdu=temp1.length();int biaozhi=1;
sx1[i]=sx[i]*sx[i];string temp;
for(int j=1;j<11;j++)
{
int sbs;
sbs=sx1[i]*j;
temp = to_string(sbs);
//int 转换成string;
int longdu1=temp.length();
temp=temp.substr(longdu1-longdu,longdu);
//cout<<temp<<endl;
if(temp==temp1)
{
cout<<j<<" "<<sbs<<endl;biaozhi=0;break;
}
//获取string的长度;
//从后面开始截,取截了之后的string.
//截了之后的string再转换成int;
//if(截后的这部分等于原来的sx[i])
//cout<<i<<" "<<sbs<<endl;
}
if(biaozhi==1)
{
cout<<"No"<<endl;
}
}
}