题目粗心
如果两个数字的位数和雷同,那么就阐明这是一个好友数,当初给定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;}