题目大意:
若两个数数位和相等,称他们为友数,数位和称朋友id,求出给出的一组数字中朋友id的个数,并升序输出。
代码:
#include<stdio.h>
#include<set>
using namespace std;
int change(int number)
{
int sum=0;
while(number)
{
sum+=(number%10);
number/=10;
}
return sum;
}
int main()
{
int n;
scanf("%d",&n);
set<int> s;
s.clear();
int number;
for(int i=0;i<n;i++)
{
scanf("%d",&number);
s.insert(change(number));
}
int a[s.size()+1];
int k=0;
for(set<int>::iterator it=s.begin();it!=s.end();it++)
{
a[k++]=(*it);
}
printf("%d\n",s.size());
for(int i=0;i<k-1;i++)
{
printf("%d ",a[i]);
}
printf("%d",a[k-1]);
return 0;
}