题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805267416334336
一遍过,注意点是set不可以使用迭代器+数字的方法索引

代码

  1. #include<vector>
  2. #include<set>
  3. #include<cstdio>
  4. using namespace std;
  5. int main(){
  6. int n;
  7. scanf("%d", &n);
  8. vector<int> num(n);
  9. set<int> res;
  10. for(int i = 0; i < n; i++) scanf("%d", &num[i]);
  11. for(int i = 0; i < n; i++){
  12. int friend_num = 0;
  13. while(num[i] != 0){
  14. friend_num += num[i] % 10;
  15. num[i] /= 10;
  16. }
  17. res.insert(friend_num);
  18. }
  19. printf("%d\n", res.size());
  20. printf("%d", *res.begin());
  21. for(auto it = res.begin(); it != res.end(); it++){
  22. if(it == res.begin())continue;
  23. printf(" %d", *it);
  24. }
  25. }