解题思路:
注意事项:
参考代码:
#include<bits/stdc++.h>
using namespace std;
int change(int x)
//将x转化为字符型,对x的个位十位百位等位置数进行排序
//在将x装化会int
//总:将x个个位数重新排序变成最小数
//如 97624721变成12246779
{
int y;
char s[20];
sprintf(s,"%d",x);//将x以整型的形式放入s中//此时变为s的类型
int len=strlen(s);
sort(s,s+len);//从小到大排序
sscanf(s,"%d",&y);//将s转化为整型并放入y中
return y;
}
int main()
{
int n;
while(cin>>n)
{
if(n==0) break;
vector<int>va(n),vb(n);//n为长度
//输入要处理的整数,
for(int i=0;i<n;i++)
{
cin>>va[i];
vb[i]=change(va[i]);
//vb[i]保存变化后的数,用于后续比较
//va[i]还是原数,用于输出
}
//map映射 //统计每个转换结果出现的次数
map<int,int>mp;
for(int i=0;i<n;i++)
{
int x;
x=vb[i];
mp[x]++;
}
//set有序且去重
set<int>myset;
for(int i=0;i<n;i++)
{
if(mp[vb[i]]==1)//对应位置有值
myset.insert(va[i]);//存入set类型,排序且去重
}
//输出
if(myset.size()==0)
cout<<"None"<<endl;
else
{
for(auto x:myset)
{
cout<<x<<" ";
}
cout<<endl;
}
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复