TIMU:https://pintia.cn/problem-sets/994805260223102976/problems/994805267416334336
#include<iostream>
#include<algorithm>
//如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。
//例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。
//
using namespace std;
int main()
{
int n;
cin >> n;
int* num=new int [n];
for (int i = 0;i < n;i++)
cin >> num[i];
int* friendd=new int [n];
for(int i=0;i<n;i++)
friendd[i]=0;
for (int i = 0;i < n;i++)
{
while (num[i]/10 > 0)
{
friendd[i] += num[i] % 10;
num[i] = (num[i] - num[i] % 10) / 10;
}
friendd[i] += num[i];
}
sort(friendd, friendd + n);
int j = 0;
for (int i = 0;i < n;i++)
{
for (j = i + 1;j < n;j++)
{
if (friendd[j] == friendd[i])
{
friendd[j]=0;
}
else
{
i = j-1;
break;
}
}
}
int c = 0;
for (int i = 0;i < n;i++)
{
if (friendd[i] != 0)
c++;
}
cout << c << endl;
for (int i = 0;i < n;i++)
{
if(friendd[i]!=0)
{
while (i != 0)
{
cout << " ";
break;
}
cout << friendd[i];
}
}
return 0;
}