PTA天梯赛L1 021-030题目解析

目  录

1.L1-021 重要的话说三遍

2.L1-022 奇偶分家

3.L1-023 输出GPLT

4.L1-024 后天

5.L1-025 正整数A+B

6.L1-026 I Love GPLT

7.L1-027 出租

8.L1-028 判断素数

9.L1-029 是不是太胖了

10.L1-030 一帮一 


1.L1-021 重要的话说三遍

 代码:

#include<iostream>using namespace std;signed main(){for (int i=0;i<3;i++) cout<<"I'm gonna WIN!"<<endl;return 0;
}

2.L1-022 奇偶分家

分析: 

可以使用位运算快速判断奇偶

 代码: 

#include<iostream>using namespace std;
int n;
int nums;int sum1,sum2;
signed main(){cin>>n;while(n--) {cin>>nums;if (nums&1) sum1++;else sum2++;}cout<<sum1<<" "<<sum2;return 0;
}

3.L1-023 输出GPLT

分析:  

题目要我们调整字符串内GPLT的次序,在左边的字符串输出完了,右边如果还有剩余依旧要保持相对次序知道所有的GPLT输出完毕,所以我们全部将数量存起来,用四个计数变量输出即可

 代码: 

#include<iostream>using namespace std;string s;
int sumG,sumP,sumT,sumL;
signed main(){cin>>s;for(int i=0;i<s.size();i++){if (toupper(s[i])=='G') sumG++;else if (toupper(s[i])=='P') sumP++;else if (toupper(s[i])=='T') sumT++;else if (toupper(s[i])=='L') sumL++;}	while(sumG || sumP || sumT || sumL){if (sumG) cout<<"G",sumG--;if (sumP) cout<<"P",sumP--;if (sumL) cout<<"L",sumL--;if (sumT) cout<<"T",sumT--;}return 0;
}

4.L1-024 后天

 分析: 

我们如果后天的编号超出了7,我们区间循环一下取余输出,没超出就原数输出

 代码: 

#include<iostream>using namespace std;signed main(){int n;cin>>n;cout<<((n+2)>7?n-5:n+2);return 0;
}

5.L1-025 正整数A+B

分析:  

题目大意如下:

给出一个带多个空格的字符串,要求将第一个空格作为分隔,判断前后是否为数值,如果是则原样输出,不是则输出问号;当两边都是数值的时候等式右边还要输出结果,否则也输出问号。

所以我们书写两个find函数,一个碰到第一个空格时截止,第二个读取完剩下的字符串,然后经由一个判断规则来判断这两个字符串是否都为数值

这道字符串出的确实有点恶心,需要仔细审题

 代码: 

#include<iostream>
#include<string>
#define debug(x) cout<<#x<<"的值为"<<x<<endl; 
using namespace std;
string s;// 出现符号
// 出现非数字
int index=0;
bool flag; 
int finds(string s){int nums=0;int i;for( i=index;i<s.size();i++){
//		debug(s[i])if(s[i]==' '){index=i+1;return (nums==0 ||nums>1000 || nums<1) ?-1:nums;}if(s[i]<'0' || s[i]>'9') {while(s[i]!=' ') i++;index=i+1;return -1;}nums*=10;nums+=s[i]-'0';}
//	debug(nums);index=i+1;if (nums>1000 || nums<1) return -1;return nums;
}int findTwo(string a){int nums=0;for(int i=index;i<a.size();i++){if (s[i]<'0' || s[i]>'9') return -1;nums*=10;nums+=s[i]-'0';}if (nums>1000 || nums<1) return -1;return nums;
} 
// 测试点3  
// 123 123 kjaksdjsigned main(){getline(cin,s);
//	cout<<s<<endl;
//	寻找第一次空格区间 int lefts=finds(s);if (lefts==-1) cout<<"?",flag=true;else cout<<lefts;cout<<" + ";int rights=findTwo(s);
//	debug(index);if (rights==-1) cout<<"?",flag=true;else cout<<rights;cout<<" = ";if (flag) cout<<"?";else cout<<lefts+rights<<endl;return 0;
}

6.L1-026 I Love GPLT

 代码: 

#include<iostream>using namespace std;string s="I Love GPLT";
signed main(){for(int i=0;i<s.size();i++){cout<<s[i]<<endl;}return 0;
}

7.L1-027 出租

分析:  

我们将输出部分分为6个部分,详见代码函数调用

前面的排序使用set自动帮我们做,后面的下标遍历我们用双重循环暴力枚举

 代码: 

#include<iostream>
#include<algorithm>
#include<set>#define debug(x) cout<<"变量"<<#x<<"的值是:"<<x<<endl;
using namespace std;string s;
int arr[20];set<int,greater<int> > myset;
int sss[20];
int index=0;
void print1(){cout<<"int[] arr = new int[]{";
} void printData1(set<int,greater<int> > myset){for(auto it = myset.begin(); it != myset.end(); ++it) {if (it!=myset.begin()) cout<<","; cout<<(*it);sss[index++]=(*it);}
}void print2(){cout<<"};"<<endl;
}void print3(){cout<<"int[] index = new int[]{";
} 
void printData2() {bool flag=false;
//	debug(s.size())
//	debug(myset.size())for(int i=0;i<s.size();i++){for(int j=0;j<myset.size();j++){if ((s[i]-'0')==sss[j]) {if (flag) cout<<",";cout<<j;flag=true;}}}
}
void print4(){cout<<"};";
}
signed main(){cin>>s;for(int i=0;i<s.size();i++){arr[i]=s[i]-'0';
//		debug(arr[i]);myset.insert(arr[i]);	}print1();printData1(myset); print2();print3();printData2();print4(); return 0;
}

8.L1-028 判断素数

 代码: 

#include<iostream>
#include<cmath>
using namespace std;bool check(int num){if (num<2) return false;if (num==2) return true;for(int i=2;i<=sqrt(num);i++){if (num%i==0) return false;}return true;
} 
int nums;
signed main(){int n;cin>>n;while(n--){cin>>nums;if (check(nums)){cout<<"Yes"<<endl;}else {cout<<"No"<<endl;}}return  0;
}

9.L1-029 是不是太胖了

 代码: 

#include<iostream>
#include<iomanip>using namespace std;double s;
signed main() {cin>>s;cout<<fixed<<setprecision(1)<<(s-100)*0.9*2;return  0;
} 

10.L1-030 一帮一

分析:  

我们将所有学生的信息存入结构体,使用双重循环,第一重从前往后遍历没有配对的好学生,第二重从为第一重的好学生找搭子,题目保证能找到,我们的循环这样写就ok了

看数据规模,n^2算法够用了

 代码: 

#include<iostream>
#include<iomanip>using namespace std;int n;
char s;
string name;struct sss {
//	int indexs;char s;string name;bool check;
};int index1,index2;
struct sss ttt[55];
//struct sss ttt1[50];
//int coun=0;
signed main() {cin>>n;for(int i=0;i<n;i++){cin>>s>>name;ttt[i].s=s;ttt[i].name=name;ttt[i].check=false;}	for(int i=0;i<n;i++){for(int j=n-1;j>=0;j--){if (ttt[i].s!=ttt[j].s && ttt[i].check==false && ttt[j].check==false){ttt[i].check=true , ttt[j].check=true;cout<<ttt[i].name<<" "<<ttt[j].name<<endl;break;}}
//		if (coun==n/2) break;}return  0;
} 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python实现数据爬虫

一&#xff1a;什么是爬虫 网络爬虫&#xff08;又被称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;经常被称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字…

java泛型的高级用法

Java 泛型提供了强大的泛型机制&#xff0c;可以在编译时检查类型安全&#xff0c;并且可以编写通用的代码&#xff0c;使得代码更加灵活和重用。除了基本的泛型用法外&#xff0c;还有一些高级的泛型用法&#xff0c;以下是一些常见的高级泛型用法&#xff1a; 泛型通配符&…

【YOLO v5 v7 v8 v9小目标改进】AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失

AFPN 渐进式特征金字塔网络&#xff1a;解决多尺度特征融合中&#xff0c;信息在传递过程丢失 提出背景AFPN 多尺度特征金字塔 非邻近层次的直接特征融合 自适应空间融合操作 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 提出背景 论文&#xff1a;https:…

人力资源管理软件大比拼:这篇文章帮你做出明智选择!

本期为您盘点的助力现代企业强力提效的人力资源管理软件有&#xff1a;Zoho People&#xff0c;Workday&#xff0c;BambooHR和Namely。 Zoho People人力资源管理软件 Zoho People是一款全面的云端人力资源管理&#xff08;HRM&#xff09;软件&#xff0c;由Zoho Corporation…

Android开发快速上手,2024年展望Android原生开发的现状

前言 很多次小伙伴问到学习方法&#xff0c;我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情&#xff0c;我没啥发言权&#xff0c;因为我自己本身都是没啥方法可言的&#xff0c;就瞎折腾那种&#xff0c;但是大家想看这样的一篇文章&a…

TinyEMU编译与使用

TinyEMU编译与使用 1 介绍2 准备工作3 编译TinyEMU3.1 安装依赖库3.2 编译 4 运行TinyEMU4.1 在线运行4.2 离线运行 5 共享目录5.1 修改root_9p-riscv64.cfg5.2 启动TinyEMU5.3 执行挂载命令 6 TinyEMU命令帮助 1 介绍 原名为riscvemu&#xff0c;于2018-09-23&#xff0c;改为…

mapbox鼠标滑到气泡中不关闭气泡。

贴个群号 WebGIS学习交流群461555818&#xff0c;欢迎大家 效果图 像官网这样的例子&#xff0c;我们并不能鼠标移动到上面的popup内容中&#xff0c;但是有时候是有这样的需求的&#xff0c;比如复制里面的值&#xff0c;或者里面加个按钮&#xff0c;可以点击出现弹窗&…

Vue3:使用setup实现组合式开发

一、情景说明 首先&#xff0c;我们应该知道&#xff0c;Vue3中&#xff0c;可以用Vue2的语法&#xff0c;进行配置式开发。 在这里&#xff0c;我们用Vue3的新语法&#xff0c;实现组合式开发 二、案例 1、组件中使用setup代替Vue2中的data、methods等vc配置项 关键配置&a…

declare 模块声明

示例代码&#xff1a; declare module *.css; declare module *.less; declare module *.png;这些代码行是 TypeScript 的模块声明&#xff0c;用于告诉 TypeScript 编译器如何处理某些类型的模块导入。TypeScript 是一种基于 JavaScript 的静态类型检查语言&#xff0c;它允许…

STM32(19)I2C模块 主机发数据

发送数据&#xff1a; 等待空闲&#xff1a; 发送起始位&#xff1a; 发送地址&#xff1a; 发送数据&#xff1a;

鸿蒙中Text组件的展开和收起效果

前言&#xff1a; DevEco Studio版本&#xff1a;4.0.0.600 效果&#xff1a; 原理分析&#xff1a; 通过效果图我们知道&#xff0c;可以将‘...展开’ 盖在文本内容的的右下角来实现这个效果。那么要实现盖上的效果可以通过层叠布局&#xff08;Stack&#xff09;来实现&am…

基于ceph-deploy部署Ceph 集群

Ceph分布式存储一、存储基础1、单机存储设备1.1 单机存储的问题 2、分布式存储(软件定义的存储SDS)2.1 分布式存储的类型 二、Ceph简介1、Ceph优势2、Ceph架构3、Ceph 核心组件4、OSD 存储后端5、Ceph 数据的存储过程6、Ceph 版本发行生命周期 三、Ceph 集群部署1、 基于 ceph-…

【Vue3】Ref 和 ShallowRef 的区别

目录 什么是 Ref什么是 ShallowRef区别对比示例代码 什么是 Ref Ref 是 Vue 3 中的一个新的基本响应式数据类型&#xff0c;它允许我们包装任意的 JavaScript 值&#xff0c;并且在数据变化时发出通知。Ref 提供了一个 .value 属性来访问其内部的值&#xff0c;同时还提供了一…

【前端捉鬼记】记录两个js中非常基础的小白问题

写逻辑时&#xff0c;遇到两个js代码里非常基础的小白问题&#xff0c;用简单的代码测试并记录一下&#xff1a; 1、一个对象 a 有个数组类型的属性 b&#xff0c;将这个数组取出保存到另一个变量 m&#xff0c;修改 m&#xff0c;对象 a 中的属性 b 是否跟随变化&#xff1f;…

【Java EE初阶二十七】深入了解cookie

1. 简单了解cookie Cookie是http请求里header 中的一个属性&#xff0c;浏览器持久化存储数据的一种机制&#xff0c;网页无法访问主机的文件系统&#xff0c;要想存储数据就得通过其他的方式&#xff1b; 且cookie中保存的数据也是键值对的形式&#xff0c;最终还是要把这个键…

移动开发:网格视图

一、在新建GridView模块下添加图片以及创建cell.xml文件 1.粘贴图片时选择红框中的路径&#xff0c;点击“OK” 2.在路径后添加-mdpi后缀,再点击“OK” 二、相关代码块 1.MainActivity.java文件代码 package com.example.gridview;import androidx.appcompat.app.AppCompatAc…

供应链优化:降本增效的核心战略——张驰咨询

在当今这个高度竞争的商业环境中&#xff0c;企业为了保持竞争力&#xff0c;不断寻求降低成本和提升效率的策略变得至关重要。有效的成本控制和效率提升不仅能够增加企业的利润率&#xff0c;还能增强其市场地位和客户满意度。以下是一些实用的策略&#xff0c;旨在帮助企业实…

HCIE之MPLS练习(六)

MPLS练习 一、静态LSP1、IGP构建FEC2、全网运行MPLS3、打通LSP通道3.1、静态LSP配置3.2、转发过程3.3、验证标签转发过程 4、利用LSP传递任意流量4.1、配置4.2、验证 二、LDP协议1、IGP构建FEC2、全网运行mpls、ldp3、mpls ldp邻居关系、LIB表4、转发过程5、验证mpls转发过程6、…

从嵌入式Linux到嵌入式Android

最近开始投入Android的怀抱。说来惭愧&#xff0c;08年就听说这东西&#xff0c;当时也有同事投入去看&#xff0c;因为恶心Java&#xff0c;始终对这玩意无感&#xff0c;没想到现在不会这个嵌入式都快要没法搞了。为了不中年失业&#xff0c;所以只能回过头又来学。 首先还是…

leetcode——异或运算—— 只出现一次的数字

给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 示例 1 &#xff1a; 输入&#xff…