第一次pta认证P测试C++

第一题

试题编号:20210701-1

试题名称:标题统计

时间限制: 1.0s

内存限制: 128.0MB

【问题描述】

小明阅读了一篇特别优美的英文文章,读到最后总结段落的时候,突发奇

想,想要数一数这个段落中有多少个字符?注意:段落中可能包含大、小写英

文字母、数字字符和空格。在统计该段落字符数时,空格不计算在内。并且段

落所有字符长度小于等于 100。

【输入描述】

输入数据只有一行,一个字符串 s。

【输出描述】

输出一个整数,即作文标题的字符数(不含空格)。

【输入样例】

Ca 45

【输出样例】

4

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

int num=0;
string s;
int main()
{
    getline(cin,s);
    for (int i = 0; i < s.size(); ++i)
    {
        if (s[i]>='a'&& s[i]<='z' || s[i]>='A'&& s[i]<='Z' || s[i]>='0'&& s[i]<='9')
        {
            num++;
        }
    }
    cout << num << endl;
    return 0;
}

第二题

试题编号:20210702-1

试题名称:计数问题

时间限制: 1.0s

内存限制: 128.0MB

【题目描述】

小明和小红玩一个数字游戏,游戏规则是一方给出一个数字 n,对方需要说

出 1 到 n 的所有整数中,数字 x ( 0≤x≤9 ) 共出现了多少次?比如给出一个

数字 12,在 1 到 12 中数字 2 出现了几次?即在 1,2,3,4,5,6,7,8,9,10,11,12

中,数字 2 出现了 2 次 (n≤65535) 。

【输入描述】

输入两个正整数 n 和 x,之间用一个空格隔开。

【输出描述】

输出一个整数,表示 x 出现的次数。

【输入样例】

11 1

【输出样例】

4

cpp 复制代码
#include <iostream>
using namespace std;

int n,d,ans,a;
int main()
{
    cin>>n>>d;
    for (int i = 0; i <= n; ++i)
    {
        a=i;
        if (a==0&&d==a)
        {
           ans++;
        }
        while(a){
            if (a%10==d)
            {
                ans++;
            }
            a/=10;
        }
    }
    cout<<ans;
    
    return 0;
}

第三题

试题编号:20210701-2

试题名称:台阶问题

时间限制: 1.0s

内存限制: 128.0MB

【问题描述】

小明放学回家会经过一个天桥到马路对面才可以搭乘公交,而登上天桥需

要迈 26 级台阶。他突然想到数学课上的一个问题:如果我每一步只能迈上 1 个

或 2 个台阶。那么面对不同级数的楼梯,有多少种不同的走法呢?

请你利用计算机的优势,计算 N(N<=39)级台阶一共有多少种上法,帮助

小明寻找答案。

【输入描述】

输入一行,正整数 N(N<=39)

【输出描述】

输出一行,有多少种不同的上法

【输入样例】

8

【输出样例】

34

cpp 复制代码
#include <iostream>
using namespace std;

int n,a,b,c;
int main()
{
    cin>>n;
    a=1;
    b=1;
    for (int i = 2; i <=n; ++i)
    {
        c=a+b;
        a=b;
        b=c;
    }
    if (n==1)
    {
        c=1;
    } else if (n==2)
    {
        c=2;
    }
    cout << c << endl;
    return 0;
}


第五题

试题编号:20210701-5

试题名称:最小生成树

时间限制: 1.0s

内存限制: 128.0MB

【题目描述】

对于一个给定的图,它的所有生成树中,最大边和最小边的边权差最小是多

少。

【输入格式】

输入数据共 m+1 行。

第 1 行两个整数 n 和 m,用空格隔开,分别表示图的顶点数和边数。

接下来 m 行,每行 3 个整数 u,v,w,用空格隔开,表示定点 u 和定点 v 之

间有一条权值为 w 的无向边。

【输出格式】

输出一行,一个非负整数,表示所有生成树中,最大边和最小边的最小边权

差。若图本身不连通,则输出-1。

【输入样例 1】

4 5

1 2 3

1 3 5

1 4 6

2 4 6

3 4 7

【输出样例 1】

1

【输入样例 2】

5 10

1 2 9384

1 3 887

1 4 2778

1 5 6916

2 3 7794

2 4 8336

2 5 5387

3 4 493

3 5 6650

4 5 1422

【输出样例 2】

1686

【数据规模与约定】

20%的数据:n ≤ 10;

100%的数据:2 ≤ n ≤ 100 , 0 ≤ m ≤ 3000。

相关推荐
云边有个稻草人1 小时前
【C++】第二十一节—一文详解 | 红黑树实现(规则+效率+结构+插入+查找+验证)
算法·红黑树·红黑树的插入·红黑树的结构·红黑树完整代码·红黑树的效率·红黑树的查找
时光追逐者1 小时前
C#拾遗补漏之 Dictionary 详解
开发语言·c#·.net·.net core
仟濹2 小时前
【C/C++】整数超过多少位时用「高精度」
c语言·c++·算法
夏影孤灯2 小时前
C 语言问题
c语言·开发语言
DIY机器人工房5 小时前
一个可以检测本机的字节顺序,并对任意数据进行字节顺序的反转操作的代码。
嵌入式硬件·算法·嵌入式·diy机器人工房
新手小新6 小时前
C++游戏开发(2)
开发语言·前端·c++
杰克尼7 小时前
11. 盛最多水的容器
算法·leetcode·职场和发展
你的电影很有趣7 小时前
lesson30:Python迭代三剑客:可迭代对象、迭代器与生成器深度解析
开发语言·python
程序员编程指南8 小时前
Qt 嵌入式界面优化技术
c语言·开发语言·c++·qt
q__y__L8 小时前
C#线程同步(二)锁
开发语言·性能优化·c#