PAT Basic 1064 朋友数 (20 分)

Posted littlepage

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT Basic 1064 朋友数 (20 分)相关的知识,希望对你有一定的参考价值。

如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。

输入格式:

输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于 1。

输出格式:

首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格。

输入样例:

8
123 899 51 998 27 33 36 12

输出样例:

4
3 6 9 26



#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main()
    set<int> s;
    int n;cin>>n;string tmp;
    while(n--)
        cin>>tmp;int val=0;
        for(int i=0;i<tmp.length();i++)
            val+=(tmp[i]-0);
        s.insert(val);
    
    cout<<s.size()<<endl;
    for(auto it=s.begin();it!=s.end();it++)
        if((*it)!=(*--s.end()))  cout<<*it<<" ";
        else cout<<*it;
    return 0;

 

以上是关于PAT Basic 1064 朋友数 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章

PAT Basic 1064

PAT 1064. 朋友数(20)

PAT Basic 1023 组个最小数 (20 分)

1064 朋友数 (20 分)

PAT 1064. 朋友数

PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分) (排序)