• PAT 1064 朋友数


    https://pintia.cn/problem-sets/994805260223102976/problems/994805267416334336

    如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 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 <bits/stdc++.h>
    
    using namespace std;
    
    const int maxn=1e4+10;
    char a[maxn];
    int pys[maxn],num[maxn];
    
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1; i<=n; i++)
        {
            scanf("%s",a);
            int len=strlen(a);
            for(int j=0; j<len; j++)
            {
                pys[i]+=a[j]-'0';
            }
            //cout<<pys[i]<<" ";
        }
        int cnt=1;
        num[1]=pys[1];
        for(int i=1; i<=n; i++)
        {
            int flag=0;
            for(int j=1; j<=cnt; j++)
            {
                if(pys[i]==num[j])
                {
                    flag=1;
                }
            }
            if(flag!=1)
                num[++cnt]=pys[i];
        }
        sort(num+1,num+1+cnt);
        printf("%d
    ",cnt);
        for(int i=1; i<=cnt; i++)
        {
            if(i!=cnt)
            printf("%d ",num[i]);
            else
            printf("%d",num[i]);
        }
        return 0;
    }
    

      

  • 相关阅读:
    Jenkins中Jelly邮件模板的配置
    十天冲刺(10)
    代码大全阅读笔记01
    大二下学期学习进度(十)
    十天冲刺(9)
    十天冲刺(8)
    统计文章中字母、单词出现的频率
    十天冲刺(7)
    十天冲刺(6)
    十天冲刺(5)
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9301962.html
Copyright © 2020-2023  润新知