题目大意:
求出每一个数的各个位数相加和,去重后从小到大输出。
解题思路:
模拟+set
代码如下:
#include<iostream>
#include<cstdio>
#include<map>
#include<set>
#include<algorithm>
using namespace std;
map<int,int> cont;
set<int>res;
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
string s;
int sum=0;
cin>>s;
for(int i=0;i<s.length();i++)
{
int tmp=s[i]-'0';
sum+=tmp;
}
res.insert(sum);
}
set<int>::iterator it;
cout<<res.size()<<endl;
for(it=res.begin();it!=res.end();it++)
{
if(it==res.begin())cout<<*it;
else cout<<" "<<*it;
}
cout<<endl;
return 0;
}