一.题目描述
二.解题思路
1.朋友数的定义是一个整数的各位数之和。
2.“不同朋友证号的个数”,意思是不允许重复,根据输出样例同样可以看出,此处考虑set容器
3.set容器性质:容器内元素无重复,且元素插入后自动递增排序
三.代码
#include<iostream>
#include<set>
#include<vector>
using namespace std;
int test(int m) {
int sum = 0;
while (m) {
sum = sum + m % 10;
m = m / 10;
}
return sum;
}
int main() {
int friend_nums; //朋友个数
cin >> friend_nums;
vector<int> p(friend_nums);
for (int i = 0; i < friend_nums; i++) {
cin >> p[i];
}
set<int> res;
int count = 0;
for (int j = 0; j < friend_nums; j++) {
res.insert(test(p[j]));
count++;
}
cout << res.size() << endl;
set<int>::iterator i = res.begin(), end = res.end();
int size = res.size();//获取sum容器的大小
for (int j = 0; j < size;j++,i++)
{
cout << *i;
if (j != size - 1)
cout << " ";
}
return 0;
}