![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机试知识点集合C++/C
文章平均质量分 65
机试题目练习
果_s
这个作者很懒,什么都没留下…
展开
-
机试:字符串相关简单问题
这道题的描述是这样的:输入一个字符串,将其中的数字字符移动到非数字字符之后,并保持数字字符和非数字字符输入时的顺序。例如:输入字符串“ab4f35gr#a6”,输出为“abfgr#a4356”。以下使我试着敲的代码,思路很简单,遍历两遍字符串,第一遍把非数字的排好,第二遍再把数字排好。但是这段代码运行结果并不令我满意::条件是逻辑上不可能的,因为在ASCII码中,'0'到'9'之间没有其他字符,因此这个条件永远不会为真。这意味着第一个while循环实际上不会把任何字符放进这样就可以了。原创 2024-05-08 10:02:21 · 906 阅读 · 0 评论 -
机试:杨辉三角(模拟)
题目描述:提到杨辉三角形.大家应该都很熟悉.这是我国宋朝数学家杨辉在公元1261年著书《详解九章算法》提出的。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 我们不难其规律: S1:这些数排列的形状像等腰三角形,两腰上的数都是1 S2:从右往左斜着看,第一列是1,1,1,1,1,1,1;第二列是,1,2,3,4,5,6;第三列是1,3,6,10,15;第四列是1,4,10,20;第五列是1,5,15;第六列是1,6……。原创 2024-05-05 10:30:29 · 360 阅读 · 0 评论 -
机试:进制转换问题
简单回忆一下十进制我们是怎么转换成二进制的(短除法):我们会将十进制数不断的进行除2操作,并且记录下每一次的余数(这个余数就是我们最终求的二进制数的组成部分)。以下以12D举例,将其转换成二进制数:除2 被除数 ------------- 余数商&下一个被除数 6 (=12/2) -------------- 0 (=6%2)0 (=1/2,结束)计算出的余数由下往上组合就是我们要求的二进制数,即。原创 2024-05-01 11:29:03 · 451 阅读 · 0 评论 -
c++ 列表
上一次学习了vector,是一个很好用的数据结构。但它仍存在一些问题:在数组中间插入或删除元素时往往效率不高。因此这次来学习一种新的数据结构——列表。在list中使用删除(erase)和插入(insert)操作,效率会更高。这个可以和vector这种数据结构对比学习,很简单。构造一个list,它其实是一个双向列表。原创 2024-04-28 16:13:23 · 132 阅读 · 0 评论 -
C++中vector的使用
vector并不是传统意义上向量的意思,在这里更多可以理解为动态数组。原创 2024-04-26 10:21:13 · 237 阅读 · 1 评论 -
机试:成绩排序
只有一个小点需要注意:我在编程的时候使用的是VS,它对scanf不支持导致我在输入字符串的时候老报错。但实际上在网上平台编译的时候使用scanf函数也是没问题的。可以看到我在下面的代码中使用了cin去输入字符串,就是因为VS的原因。如果大家用的不是VS,直接按scanf函数输入应该也是可以的。输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩。这道题的核心思想就是排序。这一点解决了就没有很难的地方了。都按先录入排列在前的规则处理。原创 2024-04-25 21:16:04 · 145 阅读 · 1 评论 -
机试:日期问题
日期问题的求解大致分为以下几种类型:1、找寻天数和年月日之间的对应关系2、已知某天为周几,求过了n天后是星期几3、已知某天年月日求出过了n天后的年月日。这类问题的统一解题思路是:已知某天的年月日,求下一天的年月日。关注:每个月份有多少天?月份的对应关系可以使用数组存储起来。对于2月份,我们需要根据是否闰年来更改天数。注:以下代码均通过了牛客网代码测试,请安心食用。原创 2024-04-24 16:22:59 · 259 阅读 · 0 评论 -
机试:大数加法和大数阶乘
但在此之前,我们需要先回忆一下我们是如何计算两个数的加法的。这样做的好处是低位运算有时会向高位产生进位,如果从高位往低位运算在不明确进位的条件下会出错。我们从个位开始计算起,现在逆序存储的好处就显示出来了。这种题目的特点是,就算使用long long 型去存储a,b,也是存不下的。为了实现从低位向高位的运算,我们在数组中存储大数时采用从最低位(也就是个位)开始存储。我们要额外定义一个进位up,用来记录每次从低位向高位产生的进位。给定整数a,b,计算a+b的值,其中a,b的位数<=10000。原创 2024-04-24 10:50:31 · 282 阅读 · 0 评论