1064 朋友数 (20 分)

#include <iostream>
#include <set>   // set 集合中没有重复的元素
using namespace std;
int cmp(int t) {
    int sum = 0;
    while (t != 0) {
        sum += t % 10;
        t /= 10;
    }
    return sum;
}
int main() {
    int n, x;
    set <int> st;
    cin >> n;
    while (n--) {
        cin >> x;
        st.insert(cmp(x));
    }
    cout << st.size() << endl;
    for (auto it = st.begin(); it != st.end(); it++) {   // auto自动推断变量类型
        if (it != st.begin()) {
            cout << ‘ ‘;
        }
        cout << *it;
    }
    cout << endl;
    return 0;
}

原文地址:https://www.cnblogs.com/Hk456/p/10788375.html

时间: 2024-09-29 20:07:53

1064 朋友数 (20 分)的相关文章

PAT Basic 1064 朋友数 (20 分)

如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”.例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号.给定一些整数,要求你统计一下它们中有多少个不同的朋友证号. 输入格式: 输入第一行给出正整数 N.随后一行给出 N 个正整数,数字间以空格分隔.题目保证所有数字小于 1. 输出格式: 首先第一行输出给定数字中不同的朋友证号的个数:随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格

1064. 朋友数(20)

1064. 朋友数(20) 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如123和51就是朋友数,因为1+2+3 = 5+1 = 6,而6就是它们的朋友证号.给定一些整数,要求你统计一下它们中有多少个不同的朋友证号.注意:我们默认一个整数自己是自己的朋友. 输入格式: 输入第一行给出正整数N.随后一行给出N个正整数,数字间以空格分隔.题目保证所有数字小于104. 输出格式: 首先第一行输出给定数字中不同的朋友证号的

PAT 1064. 朋友数(20)

如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如123和51就是朋友数,因为1+2+3 = 5+1 = 6,而6就是它们的朋友证号.给定一些整数,要求你统计一下它们中有多少个不同的朋友证号.注意:我们默认一个整数自己是自己的朋友. 输入格式: 输入第一行给出正整数N.随后一行给出N个正整数,数字间以空格分隔.题目保证所有数字小于104. 输出格式: 首先第一行输出给定数字中不同的朋友证号的个数:随后一行按递增顺序输出

PTA-C-4-7 统计某类完全平方数 (20分)

4-7 统计某类完全平方数   (20分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumber ( const int N ); 其中N是用户传入的参数.如果N满足条件,则该函数必须返回1,否则返回0. 裁判测试程序样例: #include <stdio.h> #include <math.h> int IsTheNumber ( const int N ); int ma

PTA 10-排序4 统计工龄 (20分)

题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/721 5-13 统计工龄   (20分) 给定公司NN名员工的工龄,要求按工龄增序输出每个工龄段有多少员工. 输入格式: 输入首先给出正整数NN(\le 10^5≤10?5??),即员工总人数:随后给出NN个整数,即每个员工的工龄,范围在[0, 50]. 输出格式: 按工龄的递增顺序输出每个工龄的员工个数,格式为:"工龄:人数".每项占一行.如果人数为0则不输出该项. 输入样

PTA 邻接表存储图的广度优先遍历(20 分)

6-2 邻接表存储图的广度优先遍历(20 分) 试实现邻接表存储图的广度优先遍历. 函数接口定义: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ); 其中LGraph是邻接表存储的图,定义如下: /* 邻接点的定义 */ typedef struct AdjVNode *PtrToAdjVNode; struct AdjVNode{ Vertex AdjV; /* 邻接点下标 */ PtrToAdjVNode Next; /*

6-1 单链表逆转(20 分)

6-1 单链表逆转(20 分) 本题要求实现一个函数,将给定的单链表逆转. 函数接口定义: List Reverse( List L ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode List; /* 定义单链表类型 */ L是给定单链表,函数Rever

6-2 顺序表操作集(20 分)

6-2 顺序表操作集(20 分) 本题要求实现顺序表的操作集. 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; str

7-4 找出不是两个数组共有的元素(20 分)

7-4 找出不是两个数组共有的元素(20 分) 给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔. 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格.题目保证至少存在一个这样的数字.同一数字不重复输出. 输入样例: 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出样