#include<iostream>
#include<set>
using namespace std;
set<int> intlist;//使用set容器去重,保持增序
int EPS(int a)//对每个数字按位求和
{
int sum=0;
while(a!=0)
{
sum=sum+a%10;
a=a/10;
}
return sum;
}
int main()
{
int i,j,n,now;
int sum[10010];
cin>>n;
for(i=0;i<n;i++)//每个数字的和的数组
{
cin>>now;
sum[i]=EPS(now);
}
for(i=0;i<n;i++)//寻找朋友数,也可以计算每个和的出现次数,可以降复杂度
{
for(j=i;j<n;j++)
{
if(sum[i]==sum[j])
{
intlist.insert(sum[i]);
break;
}
}
}
n=intlist.size()-1;
cout<<n+1<<endl;//输出容器大小
i=0;
for(set<int>::iterator it=intlist.begin();it!=intlist.end();it++)
{//按格式输出
cout<<(*it);
if(i<n)
{
cout<<" ";
}
i++;
}
return 0;
}
pat乙1064 朋友数
最新推荐文章于 2022-08-05 11:25:45 发布