【2021暑期训练-3】9-4 进制转换
输入十进制整数N和待转换的进制x(2、8、16),分别代表十进制N转换成二进制、八进制和十六进制,输出对应的结果。十六进制中A~F用大写字母表示。
输入格式:输入两个整数N(十进制整数N)和x(x进制),中间用空格隔开。
输出格式:输出对应的结果。
输入样例:1123 2
输出样例:11111011
输入样例:1123 16
输出样例:17B
思路利用辗转相除法进行进制转换,使用stack来存得到的结果,注意转换为16进制时,从10开始为A。
代码123456789101112131415161718192021#include <iostream>#include <stack>using namespace std;int n, x;int main() { cin >> n >> x; stack<int> s; do { s.push(n % x); n /= x; } while (n); while (!s.empty( ...
【2021暑期训练-3】9-3 括号匹配
给定仅包含“()[]{}”六种括号的字符串,请你判断该字符串中,括号的匹配是否是合法的,也就是对应括号的数量、嵌套顺序完全正确。。
输入格式:第一行一个整数T(T<=10)
其后T行每行一个字符串只包含[{()}]六种字符(字符串长度2e5以内)
输出格式:对于每个字符串,匹配输出Yes,否则输出No
输入样例:1232{()[]}([)]
输出样例:12YesNo
思路使用stack来存储符号,遇左压栈,如果为右括号判断是否与当前栈顶元素相匹配,若不匹配则为“No”,匹配则弹出当前栈顶元素(左括号),继续进行下一个括号匹配。最后为空栈则为“Yes”。
代码1234567891011121314151617181920212223242526272829303132#include <iostream>#include <stack>using namespace std;bool com(char a, char b) { if ((a == '{' && b == '}') || ...
【2021暑期训练-3】9-2 队列的实现及基本操作
给定一个初始为空的队列和一系列入队、出队操作,请编写程序输出每次出队的元素。队列的元素值均为整数。
输入格式:输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d入队,0表示出队。n不超过20000。
输出格式:按顺序输出每次出队的元素,每个元素一行。若某出队操作不合法(如在队列空时出队),则对该操作输出invalid。
输入样例:1234567871 11 20001 30
输出样例:123412invalid3
思路c++ stl 中容器queue的基本使用,注意需要使用q.empty()来判断队列是否为空
代码123456789101112131415161718192021222324#include <iostream>#include <queue>using namespace std;int main() { int n; cin >> n; queue<int> q; for (int i = 0; i < n; i++) ...
【2021暑期训练-3】9-1 栈的实现及基本操作
给定一个初始为空的栈和一系列压栈、弹栈操作,请编写程序输出每次弹栈的元素。栈的元素值均为整数。
输入格式:输入第1行为1个正整数n,表示操作个数;接下来n行,每行表示一个操作,格式为1 d或0。1 d表示将整数d压栈,0表示弹栈。n不超过20000。
输出格式:按顺序输出每次弹栈的元素,每个元素一行。若某弹栈操作不合法(如在栈空时弹栈),则对该操作输出invalid。
输入样例:1234567871 11 20001 30
输出样例:123421invalid3
思路c++ stl 中容器stack的基本使用,注意需要使用s.empty()来判断栈是否为空
代码123456789101112131415161718192021222324#include <iostream>#include <stack>using namespace std;int main() { stack<int> s; int n; cin >> n; for (int i = 0; i < n; i++) ...
【2021暑期训练-3】9-8 包装机
一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。
一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0 号键,先从筐里抓出一件物品,再将对应轨道的物品推落。此外,如果轨道已经空了,再按对应的按钮不会发生任何事;同样的,如果筐是空的,按 0 号按钮也不会发生任何事。
现给定一系列按钮操作,请你依次列出流水线上的物品。
输入格式:输入第一行给出 3 个正整数 N(≤100)、M(≤1000)和 S max(≤100),分别为轨道的条数(于是轨道从 1 到 N 编号)、每条轨道初始放置的物品数量、以及筐的最大容量。随后 N 行,每行给出 M 个英文大写字母,表示每条轨道的初始物品摆放。
最后一行给出一系列数字,顺序对应被按下的按钮编号,直到 −1 标志输入结束,这个数字不要处理。数字间以空格分隔。题目保证至少会取出一件物品放在流水线上。
输出格式:在一行中顺序 ...
每日分享day15-字符串和数字转换函数总结
河北大学暑期程序设计训练每日知识分享-day15
每日分享——字符串和数字转换函数总结常见的输出格式转化
%% 打印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
%n sscanf(str,”%d%n”,&dig,&n)
%n表示一共转换了多少位的字符
c/cpp方法(数组转字符串)123itoa() 将整型值转换为字符串itoa() 将长整型值转换为字符串ultoa() 将无符号长整型值转换为字符串
当然cpp中也有常用函数atoi(),itoa(),to_string()用于他们的转换,例子如下:
12345678910#include<stdio.h>#include<stdlib.h>void main(void);void main(void){ int num = 100; char str[25]; itoa(num, ...
每日分享day14-Stack Overflow
河北大学暑期程序设计训练每日知识分享-day14
每日分享—— Stack OverflowStack Overflow http://stackoverflow.com/Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。在问题页面,不会弹出任何广告,销售信息,JavaScript 窗口等。
Stack Overflow 参考 Reddit (一个社交新闻网站)等网站的用户激励机制,关注问题质量,网站允许注册用户提出或回答问题,还可对已有问题或答案加分、扣分或进行修改,条件是用户达到一定的“声望值”。“声望值”就是用户进行网站交互时能获取的分数 。
其他问答网站还有知乎,掘金等,社区网站也有GitHub,SegmentFault思否,在社区,每一位开发者都可以贡献和更新技术内容,共同参与社区建设,维护社区秩序。
每日分享day13-LibreOJ
河北大学暑期程序设计训练每日知识分享-day13
每日分享—— LibreOJLibreOJ https://loj.ac/洛谷致力于为OIers/ACMers提供清爽、快捷的编程体验。它不仅仅是一个在线测题系统,更拥有强大的社区、在线学习功能。同时,许多教程内容都是由五湖四海的ers提供的,保证了内容的广泛性。无论是初学者,还是久经沙场的神犇,均可从洛谷Online Judge获益,也可以帮助他人,共同进步。
可以在洛谷上搜索题单,有针对性的对某一方面进行训练或者积累做题经验。
洛谷网站为 https://www.luogu.com.cn/
每日分享day12-Git与GitHub
河北大学暑期程序设计训练每日知识分享-day12
每日分享——Git与GitHub Git是目前世界上最先进的分布式版本控制系统。
Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。
GitHub是一个基于Git的远程文件托管平台。
Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。
(git 可能大家目前不会使用到 , 但以后一定会接触的)
学习网站:
Git 教程 | 菜鸟教程
https://www.runoob.com/
https://www.runoob.com/git/git-tutorial.html
Git - 关于版本控制
https://git-scm.com/
https://www.git-scm.com/book/zh/v2/
菜鸟教程网站也是一个学习的好地方,涉及编程语言,开发,服务器端等多个方面。
作为一名合格的程序员, ...
每日分享day11-CodeSheep书签分享
河北大学暑期程序设计训练每日知识分享-day11
每日分享——CodeSheep书签分享来自CodeSheep编程羊的浏览器收藏夹
CodeSheep,热爱技术的开发人员,经常在微信、B站等平台分享学习经历、分析技术行情。B站的ID就是CodeSheep,他的学习分享视频覆盖许多技术领域,总会有你感兴趣的。
这个浏览器收藏夹包含了很多实用小工具和图片素材网站(思维导图制作、ASCII查询、CSS在线效果等,大家以后在做课程大作业的时候很可能会用到图片素材网站)
导入到自己的浏览器书签也很容易,这里以Edge为例,其他浏览器均可,操作简便。







