- 博客(6)
- 收藏
- 关注
原创 C++入门必备
在C/C++中,变量、函数、类的名称如果都在全局作用域中,可能会导致很多冲突,所以c++中以命名空间来对标识符的名称进行本地化,以避免命名冲突。定义命名空间,需要使用关键字namespace,关键字后面跟命名空间的名字,{}内为命名空间的成员。命名空间中可以定义变量,函数,类型。一个命名空间就定义了一个新的作用域,命名空间中的所有内容都被局限于该命名空间中。代码中::表示域作用限定域,一种所属关系,add函数是a中的成员,如果不指定默认是全局,例如sub是全局函数,上面代码指定为在a这个域中。
2023-07-15 18:12:21 74 1
原创 动态规划入门题深度分析
我们每一次都选择当前的最大数字,1-6-9-2结果是18,然而通过观察我们发现1-4-8-7才是最优的解,所以贪心算法目光短浅,走一步算一步,最后就吃亏了;对任意一个坐标点(x,y),由下方(x+1,y+1),(x+1,y)推来;eg.给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。当前点(x,y)可以由(x-1,y),(x-1,y-1)推出,各点的值从上往下累加,我们得出递推式。
2023-03-28 15:02:32 86
原创 数据在内存中的存储
首先介绍原码反码和补码,即整数在计算机中的3种2进制表示方法,它们由两部分构成,分别是符号位和数值位,我们要先明确这些规定:1符号位用0/1表示,0代表正,1代表负 2.正数的原反补都相同。3.对于整形而言,数据是以补码的形式存放在内存中的。内存的单元是字节,1个字节8bit,对于位数大于8的处理器,由于寄存器宽度大于一个字节就存在着多个字节如何安排的问题,就出现了不同的存储模式。大端存储模式:将数据的低位字节内容保存到内存的高地址中,数据的高位字节内容保存到内存的低地址中,小端存储模式正好与大端相反。
2023-01-05 14:21:49 86
原创 getchar清理缓冲区的问题
运行代码1之后我们发现该代码的确实现了大小写转换,但是多打印了一个*,这是因为键盘和getchar之间有一个输入缓冲区,当敲一个字符进去的时候并没有进入输入缓冲区,getchar无法读取,此时我们还需要从键盘敲一个回车进去,表示进入了输入缓冲区,getchar就能够一个字符一个字符的读取。但此时在输入缓冲区中我们已经有了两个字符,一个是我们敲入的字符,另一个是换行符。而换行符+32之后的ASCII码值正好对应*,所以还会有*出现,解决办法很简单就像代码2那样。多组输入,每行输入大写字母。
2022-10-30 14:35:13 230 1
原创 [AHOI2001]彩票摇奖
先上题注:兑奖时并不考虑彩票上的号码和中奖号码中的各个号码出现的位置。例如,中奖号码为 23\ 31\ 1\ 14\ 19\ 17\ 18,则彩票 12 8 9 23 1 16 7 由于其中有两个号码(23 和 1)出现在中奖号码中,所以该彩票中了五等奖。现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。
2022-10-24 19:14:25 334 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人