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

在这里插入图片描述

#include <iostream>
using namespace std;
int f(int n){
    if (n==0)
    {
        return 1;
    }
    if (n==1)
    {
        return 3;
    }
    return 4*f(n-1)-f(n-2);
}
int n;
int main()
{
    cin>>n;
    cout<<f(n);
    return 0;
}

第二题

试题编号:2022-13-0302
试题名称:长正整数相加
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
输入两个十进制正整数 M 和 N,求它们的和,结果用十进制表示。注意,M
和 N 可能非常大。
【输入描述】
第一行包含一个正整数 M(1≤M<10100);
第二行包含一个正整数 N(1≤N<10100)。
【输出描述】
输出一个正整数,表示计算结果。
【输入样例】
769584695655486596597654685486745
452537865655768856564568658
【输出样例】
769585148193352252366511250055403
【题目解析】
本题考察数组与字符串处理,及其与循环、分支的综合运用。以字符串输
入,按照列竖式方式求解即可。需要注意进位情况的处理。如果使用
std::string 和 std::reverse 则可简化代码。

#include <iostream>
#include <cstdio>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;

const int MAXN=10005;
int a[MAXN],b[MAXN],c[MAXN],ans[MAXN],len_a,len_b,len_ans;

void read(int *a,int &len){
    string s;
    cin >> s;
    len=s.length();
    for (int i = 0; i < len; ++i)
    {
        a[i]=s[i]-48;
    }
    reverse(a,a+len);
}
int main(){
    //高精度加法
    //读入两个加数,存入数组中
    read(a,len_a);
    read(b,len_b);
    len_ans=max(len_a,len_b);
    //进行相加操作
    for (int i = 0; i <= len_ans; ++i)
    {
        ans[i] = a[i]+b[i]+c[i];
        if (ans[i]>9)
        {
            //大于9,需要进位
            c[i+1]=ans[i]/10;
            ans[i]-=10;
        }
    }
    if (ans[len_ans]>0)
    {
        //最高位进位了,整体长度+1
        len_ans+=1;
    }
    //输出结果
    for (int i = len_ans-1; i >= 0; --i)
    {
        cout << ans[i];
    }
    cout << endl;

    return 0;
}

第三题

试题编号:2022-13-0203
试题名称:研究生入学考试
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
一年一度的研究生入学考试结束了,招生办的老师打算对所有的考生进行
成绩排名,从而确定复试的名单。排名的规则如下:(1)以入学考试的平均成绩
作为排名的依据(分数均为整数);(2)对于考生 A,如果总共有 K 个考生的平
均成绩比 A 要高,那么 A 的排名为 K+1;(3)如果考生 A 和考生 B 的平均成绩相
同,则他们的排名也相同。招生办的老师希望你能编写一个程序,来帮助他们
解决这个问题。
【输入描述】
第一行为一个整数 N(1≤N≤1000),表示考生的人数。随后有 N 行,每
一行有两个非负整数描述了一位考生的信息,依次为准考证号和平均成绩。其
中,准考证号不超过 8 位,平均成绩不超过 200。
【输出描述】
输出共有 N 行,按照名次从高到低每行输出一位考生的信息,包括名次、
准考证号和平均成绩。如果两位考生的名次相同,则以准考证号为序,考号小
的在前,大的在后。
【输入样例】
5
1000 95
1001 100
1002 94
1006 95
1007 100
【输出样例】
1 1001 100
1 1007 100
3 1000 95
3 1006 95
5 1002 94

#include <iostream>
#include <algorithm>
using namespace std;
int n,num=1;
struct student{
    int id;
    int score;
};
student s[1001];
bool compare(student s1,student s2){
    if (s1.score>s2.score)
    {
        return true;
    } else if (s1.score==s2.score)
    {
        if (s1.id<s2.id)
        {
            return true;
        }
    }
    return false;
}
int main()
{
    cin>>n;
    for (int i = 0; i < n; ++i)
    {
        cin>>s[i].id>>s[i].score;
    }

    sort(s,s+n,compare);
    for (int i = 0; i < n; ++i)
    {
        if (s[i].score!=s[i-1].score)
        {
            //与前一个成绩相同,排名不变
            num=i+1;
        }
        cout << num << " " << s[i].id << " " << s[i].score << endl;
    }
    
    return 0;
}

第四题

试题编号:2022-13-0203
试题名称:跷跷板
时间限制: 1.0s
内存限制: 128.0MB
【题目描述】
游乐场的跷跷板以力矩相等原则判断是否平衡。即如果 wldl = wrdr,则认
为跷跷板是平衡的。此处,wl、wr分别表示跷跷板左右两侧的物体体重,dl、dr
分别表示左右两侧物体到跷跷板中央支点的距离。扩展跷跷板为多层结构,即
wl与 wr均可以用子跷跷板代替。此时当且仅当所有子跷跷板都是平衡的,才称
跷跷板为平衡的。
【输入描述】
采用递归方式输入数据。每行数据描述一个跷跷板。每行数据为用空格分
隔的 4 个非负整数,分别表示 wl、dl、wr、dr。当 wl或 wr为 0 时,表示该物体实
际上为一个子跷跷板,而接下来的数据将对该子跷跷板进行描述。而当 wl和 wr
均为 0 时,先描述左子跷跷板,后描述右子跷跷板。因此,多层跷跷板的数据
表示可总结为:先左后右,深度优先。
【输出描述】
如果该多层跷跷板为平衡的,输出 1,否则输出 0。
【输入样例】
0 1 0 3
0 3 0 2
4 1 2 2
6 1 3 2
3 4 2 6
【输出样例】
1

第五题

试题编号:2022-13-0305
试题名称:最萌身高差
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
有 N 位同学获得了奖学金,现要从中选出两位代表上台领奖。出于“审
美”要求,希望选出的两位代表 A 和 B 满足:A 的身高比 B 高,A 获得的奖学金
比 B 多,且奖学金的差额大于 M。请计算选取上台同学的方案数。
【输入描述】
第一行包含两个正整数 N 和 M;
第二行包含 N 个正整数 Si,分别代表第 i 位同学获得的奖学金。输入顺序
在前的同学身高较高。
【输出描述】
输出一个正整数,表示方案数。
【输入样例】
6 2
6 5 4 3 2 1
【输出样例】
6
【数据范围】
30%的数据满足:1<= N<= 100;
100%的数据满足:
1<= N<= 100000,1<= M<= 100000,1<= Si<= 100000。
【题目解析】
对 30%的数据,可以考虑逐次使用冒泡排序+二分查找完成。
对 100%的数据,可以考虑采用归并排序的思路通过分治递归求解,也可以考虑
使用线段树优化查找。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/122755.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springcloud小说阅读网站源码

开发工具&#xff1a; 大等于jdk1.8&#xff0c;大于mysql5.5&#xff0c;nodejs&#xff0c;idea&#xff08;eclipse&#xff09;&#xff0c;vscode&#xff08;webstorm&#xff09; 技术说明&#xff1a; springcloud springboot mybatis vue elementui 功能介绍&…

2023年9月少儿编程 中国电子学会图形化编程等级考试Scratch编程二级真题解析(判断题)

2023年9月scratch编程等级考试二级真题 判断题(共10题,每题2分,共20分) 26、下列两个程序运行效果一样 答案:对 考点分析:考查积木综合使用,重点考查重复执行和坐标积木 两个程序都是在x=0,y=100的时候停止,所以正确 27、甲、乙和丙,一位是山东人,一位是河南人,…

2023云栖大会,Salesforce终敲开中国CRM市场

2015年被视为中国CRM SaaS元年&#xff0c;众多CRM SaaS创业公司和厂商在Salesforce的榜样作用下涌入了CRM SaaS赛道。在全球市场&#xff0c;Salesforce是CRM SaaS领域的领导厂商&#xff0c;连续多年占据了全球CRM SaaS第一大厂商地位。然而&#xff0c;Salesforce作为业务类…

【送书福利-第二十六期】机械工业出版社《算法秘籍》~

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

面试算法常考题之-------逆波兰式合集

逆波兰式背景介绍 逆波兰式是一种特殊的数学表达式表示法&#xff0c;它的诞生背景可以追溯到20世纪30年代。当时&#xff0c;波兰数学家Jan Wjtowicz和Wacław Sierpiński提出了一种新的数学表达式表示法&#xff0c;这种表示法将运算符放在操作数之后&#xff0c;而不是传统…

Kibana使用Timelion根据时间序列展示数据

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

CloudCompare 技巧五 CSF 体积计算等

43、CSF 原始点云 我这路要的是地面分离出来&#xff0c;所以我选的是Flat 结果如下&#xff1a; 44、点云超欠挖体积计算 结果&#xff1a; 45、 网格表面积体积测量 46、法向量 47、CANUPO点云分类 持续更新

ros1 实现Server端自定义四 Topic模式控制海龟运动

一、服务模型 Server端本身是进行模拟海龟运动的命令端&#xff0c;它的实现是通过给海龟发送速度&#xff08;Twist&#xff09;的指令&#xff0c;来控制海龟运动&#xff08;本身通过Topic实现&#xff09;。 Client端相当于海龟运动的开关&#xff0c;其发布Request来控制…

1.77亿美元,安世被迫出售晶圆大厂NWF | 百能云芯

11月9日消息&#xff0c;安世半导体&#xff08;Nexperia&#xff09;与纽交所上市公司威世&#xff08;Vishay&#xff09;签署协议&#xff0c;作价1.77亿美元出售英国Newport Wafer Fab&#xff08;以下简称NWF&#xff09;的母公司NEPTUNE 6 LIMITED&#xff08;以下简称“…

LabVIEW调用库函数节点无法显示DLL中的函数

LabVIEW调用库函数节点无法显示DLL中的函数 正在使用调用库函数节点来调用一个DLL文件。可是&#xff0c;当浏览该DLL时&#xff0c;却无法在Function Name下拉菜单中选择任何函数。为什么所有的DLL函数都无法选中呢&#xff1f; 解答: 调用的DLL可能是通过.NET封装的&#x…

国标28181-2022/GB28181-2022国标检测

最近两周带了几个人一起开发国标28181-2022的平台检测&#xff0c; 由于没有28181-2022设备&#xff0c;目前一所还没有一家平台检测过&#xff0c;所以压力比较大&#xff0c;不过还好把28181-2022平台全项检测顺利过了&#xff0c;还帮忙测出了检测中心NVR的几个bug。看了下这…

【好书推荐】计算机考研精炼1000题——考研408不可或缺

《计算机考研精炼1000题》简介 本书根据最新《全国硕士研究生招生考试计算机学科专业基础考试大纲》编写。参考过去十多年的真题&#xff0c;本书精心编排了单项选择题和综合应用题&#xff0c;共约1000道&#xff08;分为上下两册&#xff0c;共24章。上册&#xff08;1&#…

Mall4cloud 微服务商城系统 2.0 发布

导读现在 jdk17 和 spring boot 以及 spring cloud alibaba 2022 的第三方依赖已经趋于成熟&#xff0c;所以 mall4cloud 也一把梭哈做了升级嗷。 本次更新重点&#xff1a; 系统由 jdk8 最低要求升级到 jdk17spring boot 由 2.7.x 升级到 3.1.xjavax 升级到 jakartaspring-cl…

【Linux网络】网卡配置与修改主机名,做好基础系统配置

目录 一、网络配置命令 1、查看网卡信息ifconfig Linux永久修改ip地址 2、主机名修改 ①hostname 临时修改主机名 ②永久修改主机名 第一种&#xff0c;使用命令修改 第二种&#xff1a;修改配置文件 3、路由信息 再来拓展一下&#xff0c;永久修改路由表信息 4、检查…

VsCode的一些配置

tab提示 代码的清晰显示

开源的全能维护 U 盘工具:Ventoy

开源的全能维护 U 盘工具&#xff1a;Ventoy 本篇文章聊聊迄今为止&#xff0c;我用着最舒服的一款开源 U 盘启动工具&#xff0c;Ventoy。 写在前面 好久不见&#xff0c;接下来计划写一个比较连续的内容&#xff0c;就先从最小的处着手吧。 经过长久的折腾&#xff0c;除…

【Mysql】增删改查(基础版)

我使用的工具是Data Grip &#xff08;SQLyog Naivact 都行&#xff09; 使用Data Grip创建student表&#xff0c;具体步骤如下&#xff08;熟悉Data Grip或者使用SQLyog&#xff0c;Naivact可以跳过&#xff09; https://blog.csdn.net/m0_67930426/article/details/13429…

红黑数原理及存在原因

我红黑树那么牛&#xff0c;你们为什么不用&#xff1f;_哔哩哔哩_bilibili 面试时经常会被问到红黑树&#xff0c;它到底有什么优点呢&#xff1f; 对于查找数据&#xff0c;数组二分查询速度最快&#xff0c;时间复杂度为O(logN)。但是如果增加和删除数据&#xff0c;数组就…

轻量封装WebGPU渲染系统示例<21>- 3D呈现元胞自动机之生命游戏(源码)

实现原理: 基本PBR光照与gpu compute计算 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/GameOfLife3DPBR.ts当前示例运行效果: 其他效果截图: 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下:…

Unity游戏开发基础组件

Unity2D 相机调整&#xff1a;Projection设置为Orthographic。也就是正交模式&#xff0c;忽视距离。 资源&#xff1a; Sprite&#xff1a;一种游戏资源&#xff0c;在2D游戏中表示角色场景的图片资源 SpriteSheet&#xff1a;切割一张图片为多个Sprite 在Sprite Editor中可以…