题目粗心

如果两个数字的位数和雷同,那么就阐明这是一个好友数,当初给定N个数字,要求依照程序输入不同的好友数

算法思路

在输出每一个数字的时候计算该数字的位数和,而后增加到set汇合中,set汇合的大小就是不同的好友数目,最初顺次输入set汇合中的元素。

提交后果

AC代码

#include<cstdio>#include<set>using namespace std;int calDigitSum(int n){    int r = 0;    while(n!=0){        r += n%10;        n /= 10;    }    return r;}int main() {    int n;    scanf("%d",&n);    int num;    set<int> s;    for(int i=0;i<n;++i){        scanf("%d",&num);        s.insert(calDigitSum(num));    }    printf("%lu\n",s.size());    int index = 0;    for(auto it:s){        printf("%d",it);        if(index<s.size()-1){            printf(" ");        }        ++index;    }    return 0;}