/*
排他平方数利用的string串的操作
*/
#include <iostream>
#include <sstream> //string流的用法需要添加的头文件
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
void Turn(ll x,string &basic_string) //将数字转化为字符处理利用的string流
{
stringstream ss; //string 流
ss<<x;
ss>>basic_string;
}
bool vis[256];
bool check(ll n)
{
ll sum=n*n;
string s1,s2;
Turn(n,s1);
Turn(sum,s2);
memset(vis,false,sizeof(vis));
for(int i=0;i<s1.size();i++)
{
if(vis[s1[i]]==true) return false;
vis[s1[i]]=true;
if(s2.find(s1[i])!=string::npos) //在字符串2中寻找是否有与字符串1相同的数,string::pos是找完最后的位置
{
return false;
}
}
return true;
}
int main()
{
for(ll i=100000;i<=999999;i++)
{
if(check(i))
cout<<i<<" "<<i*i<<endl;
}
return 0;
}
蓝桥训练-(排他平方数stringstream的应用)
最新推荐文章于 2022-02-16 21:48:20 发布