首页 > 其他分享 >PAT Basic 1064. 朋友数

PAT Basic 1064. 朋友数

时间:2023-04-02 19:49:12浏览次数:41  
标签:PAT int 1064 36 朋友 证号 Basic friendId

PAT Basic 1064. 朋友数

1. 题目描述:

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

2. 输入格式:

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

3. 输出格式:

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

4. 输入样例:

8
123 899 51 998 27 33 36 12

5. 输出样例:

4
3 6 9 26

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

除草题,按照题意编写即可。因为题目保证正整数最大为9999,所以朋友证号的范围为\(1 \sim 36\),这里定义一个大小37的int型数组friendId用于记录出现的朋友证号,方便下标访问,并且第一个元素friendId[0]用于记录有多少个不同的朋友证号。

My Code:

#include <stdio.h>

int main(void)
{
    int numCount = 0;
    int friendId[36+1] = {0}; // the maximum positive number is 9999, thus the max friendId is 36, use first element to record idCount.
    int temp=0;
    int i=0; // iterator
    int sum=0;
    int firstBlood=0; // output space flag
    
    scanf("%d", &numCount);
    for(i=0; i<numCount; ++i)
    {
        scanf("%d", &temp);
        while(temp)
        {
            sum += temp%10;
            temp /= 10;
        }
        if(!friendId[sum]) // first appear
        {
            ++friendId[sum];
            ++friendId[0]; // increase idCount
        }
        sum=0;
    }
    
    printf("%d\n", friendId[0]);
    
    for(i=1; i<=36; ++i)
    {
        if(friendId[i])
        {
            if(firstBlood)
            {
                printf(" %d", i);
            }

            else
            {
                firstBlood = 1;
                printf("%d", i);
            }
        }
    }
    printf("\n");
    
    return 0;
}

标签:PAT,int,1064,36,朋友,证号,Basic,friendId
From: https://www.cnblogs.com/tacticKing/p/17281071.html

相关文章

  • PAT Basic 1063. 计算谱半径
    PATBasic1063.计算谱半径1.题目描述:在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的\(n\)个复数空间的特征值\({a_1+b_1i,⋯,a_n+b_ni}\),它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。现在给定一些复数空间的特征值,请你计算......
  • path()方法函数定义
    path()方法函数定义path函数在Django中的的定义如下所示:path(route,view,kwargs,name)它可以接收4个参数,其中前两个是必填参数后两个为可选参数。参数解析如下:1.routeroute是一个匹配URL的准则(类似正则表达式)。当Django响应一个请求时,它会从urlpatterns的第......
  • xpath语法的使用(以selenium为例)
    """xpath定位1.路径选择/表示根节点/html表示选择根节点下的html节点/html/body/div表示选择根节点下的html节点下面的body节点下面的div节点//div/p选择所有div下的直接子节点p元素//div//p选择所有div下的所有p元素//div/2.属性选择[@属性名="属性值"......
  • PAT Basic 1062. 最简分数
    PATBasic1062.最简分数1.题目描述:一个分数一般写成两个整数相除的形式:\(N/M\),其中\(M\)不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数\(N_1/M_1\)和\(N_2/M_2\),要求你按从小到大的顺序列出它们之间分母为\(K\)的最简分数。2.......
  • PAT Basic 1061. 判断题
    PATBasic1061.判断题1.题目描述:判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。2.输入格式:输入在第一行给出两个不超过100的正整数N和M,分别是学生人数和判断题数量。第二行给出M个不超过5的正整数,是每道题的满分值。第三......
  • selenium使用css selector和xpath的比较
    selenium提供的定位方式(常用)推荐的定位方式的优先级   优先级最高:ID   优先级其次:name   优先级再次:CSSselector   优先级再次:Xpath针对cssselector和xpath的优先级做一个简单的说明在项目中我们可能用的最多的是css或者xpath,那么针对这两种,我们优先选择css,原......
  • PAT Basic 1060. 爱丁顿数
    PATBasic1060.爱丁顿数1.题目描述:英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”\(E\),即满足有\(E\)天骑车超过\(E\)英里的最大整数\(E\)。据说爱丁顿自己的\(E\)等于87。现给定某人\(N\)天的骑车距离,请你算出对应的爱丁......
  • Spatial Join,空间连接
    WelearnedhowtousetheSpatialJointooltoattachinformationfromoneattributetabletoanotherbasedonthespatialrelationshipofthefeaturesinvolved.Itisaveryusefultoolthatcanhelppeopleworkefficiently.However,Iamnotveryfam......
  • 解释器模式(Interpreter Pattern)
    一、概念解释器模式(InterpreterPattern)用于构造一个简单的语言解释器,将字符串按照自定义的方式解释执行,是一种不常用的设计模式除非从事底层开发自己需要去定义较为复杂的表达式,否则基本上不同这个设计模式二、适用场景(1)当一个语言需要解释执行,并可以将该语言中的句子......
  • PAT Basic 1059. C语言竞赛
    PATBasic1059.C语言竞赛1.题目描述:C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。1、排名为素数的学生将赢得最好的奖品——小黄人玩偶!2、......