-
题目大意:找到朋友id,即找出所有数各位数之和,然后从小到大输出。
-
思路:因为set会自动排序和去重,所以将每个数的各位数之和插入set。
-
知识点:
- set
- 如何获得一个int的各位数
-
代码:
#include <iostream> #include <set> using namespace std; set<int> fids; void find_friend(int num){ int f = 0; while(num != 0){ f += num % 10; num /= 10; } fids.insert(f); } int main(){ int n, num, i, j; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%d", &num); find_friend(num); } printf("%d\n", fids.size()); for(auto it = fids.begin(); it != fids.end(); it++){ if(it == fids.begin()) printf("%d", *it); else printf(" %d", *it); } return 0; }
-
总结:
-
没读懂题,之前以为要找到相同数的朋友id,但其实只要找出所有数各位数之和就行了。
-
如何获得一个int的各位数:
int num; scanf("%d", &num); while(num != 0){ printf("%d ", num % 10); num /= 10; }
-