当前位置: 代码迷 >> 综合 >> PAT乙级 1091 N-自守数 (15分)
  详细解决方案

PAT乙级 1091 N-自守数 (15分)

热度:12   发布时间:2024-02-06 12:12:04.0

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;}}
}