自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 位图的基本原理以及应用

实现代码如下:这里需要注意的是数组里面存放的是char占一个字节,也就是8位,用来表示状态的话相当于可以存放8个数据,因此在开空间的时候,将需要的数据大小除以8,这样一来原本需要16G左右的数据现在仅需要0.5M即可(原来数据是用int保存int占4个字节)。如果直接使用数组来存放这些数,那么一个整型的数占4个字节,40亿个数需要16G的内存大小,从空间上来说一般很难实现,更不用说如果要进行排序产生的损耗等问题了。这里的关键点在于需要确定某个数应当存放的vector数组的下标,用该数与8取模即可得到。...

2022-08-07 17:06:04 1446 1

原创 用哈希简单封装unordered_map和unordered_set

stl中的unordered_map和unordered_set内部实现了迭代器,可以使用迭代器访问其中的内容,这里我们也在哈希中实现一个迭代器操作,然后通过封装实现unordered_map和unordered_set的迭代器,实现代码如下,迭代器里面主要需要注意的是operator++操作。因此他们的基本结构可以分别这样设计:其中在原来哈希的基础上又多了一个KeyOfT的仿函数,他的作用主要是确定需要进行比较的关键字,例如map中需要比较的是T中的first,而set就是key。......

2022-08-07 16:36:32 351

原创 哈希——开散列

又叫拉链法或者哈希桶。他先将数据按照哈希函数计算得到哈希地址,如果出现相同的哈希地址的数据,那么就用一个单链表把数据连起来,各链表的头节点存储在哈希表中。由于类似于字符串等这些不能直接使用除留余数法进行哈希函数计算哈希地址的情况,这里和闭散列里面情况类似,需要设计一些哈希方法来进行转换,从而能够进行这里的取模运算。这里的扩容是先创建一个新的vector数组,给他设置为新的大小,然后通过遍历原哈希表,将哈希表每个地址的元素,以及每个链表上面所挂的数据,一一重新映射到新的vector数组中,最后进行交换即可。.

2022-08-06 16:06:37 375

原创 哈希-闭散列

但是使用哈希来存放数据也不是没有缺点的,哈希函数为hask(key) = key % capacity这种情况下,如果存放数据集合{1,11,21,31,2,12,22}这样的情况,他们通过哈希函数算出来的结果出现很多重复,计算出了相同的哈希地址。α越大,填入表中的元素越多,产生冲突的可能性越大,α越小,表明填入表中的元素越少,产生冲突的可能性越小,效率越高,空间浪费越多。他的做法是当发生哈希冲突的时候,如果哈希表未被填满,说明哈希表中还有空位置,那么就可以把数据放到冲突位置的“下一个”空位置去。...

2022-08-05 18:00:17 380

原创 线程池的简单实现

在学习使用stl容器的时候,我们见到了stl容器使用了内存池来进行时间优化,因为用户在使用new、malloc等向系统申请空间的时候,身份会发生变化,同时有可能要执行操作系统内的内存处理算法,这可能会比较耗时。于是使用了内存池来提前申请好大块内存空间,需要用户自行进行管理。与内存池类似,提前准备好的线程,用来随时处理任务,这就被称作线程池。线程池是线程的一种使用模式。线程过多会带来调度开销,从而影响缓存局部性和整体性能。而线程池中维护着多个线程,等待分配可并发执行的任务。这就避免了在处理短时间任务时创建和

2022-07-11 10:58:50 382

原创 Linux线程信号量

信号量的本质实际上就是一把计数器,可以用来描述临界资源中资源数目的大小,即最多能有多少资源可以分配给线程。临界资源可以被划分为一个一个的小资源,如果处理得当,有可能让多个线程同时访问临界资源的不同区域,从而实现并发。每个线程想访问临界资源,都需要先申请信号量资源,使用这个计数器可以实现对临界资源的预定机制。信号量也是一种特殊的数据类型—sem_t,信号量需要对其进行初始化操作,上图是对信号量进行初始化的函数,使用该参数需要控制的只有第一个和第三个参数即第一个参数传入需要进行初始化的信号量第二个参数p

2022-06-28 09:35:59 399

原创 生产者/消费者模型

生产者消费者模式是通过一个容器来解决生产者和消费者之间强耦合的关系。生产者和消费者彼此之间不直接通讯,而是通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者进行消费,而是先存到阻塞队列中。消费者不直接找生产者要数据,而是从阻塞队列中拿数据。阻塞队列就相当于一个缓冲区,将生产者和消费者之间进行解耦。如果有多个生产者或者多个消费者那么他们之间的关系如下:下面来简单实现一下生产者和消费者模型这里是使用阻塞队列来作为生产者和消费者的“交易场所”。因此需要先创建一个类。由于其可能存放的各种类型的数据或者

2022-06-23 16:47:58 1730

原创 红黑树的性质与简单实现

之前的博客中介绍了AVL树的性质与基本实现,红黑树作为另一种树型结构,他又有哪些性质呢?红黑树作为一种二叉搜索树,与AVL树通过高度差来控制平衡不同,他在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。因此,红黑树为了控制高度平衡,它具有如下的性质:红黑树有如上性质就意味着他的结点控制有如下性质:红黑树顾名思义每个节点中都存在一个变量来表示该节点的颜色(红色或者黑色)

2022-06-22 16:53:41 114

原创 Linux下的线程同步

在之前的博客中有介绍过线程互斥的概念,为了能安全的访问临界区资源,Linux可以对临界区资源进行加锁操作,但是这种操作可能会导致某个线程反复的申请锁,从而使其他线程没办法申请到锁,导致线程饥饿问题。为了解决这个问题,Linux引入了同步这个概念。同步指的是在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效的避免饥饿问题。当一个线程互斥地访问某个变量时,它可能发现在其它线程改变状态之前,它什么也做不了。例如一个线程访问队列时,发现队列为空,它只能等待,直到其它线程将一个节点添加到队

2022-06-21 13:25:47 202

原创 Altium Designer一些好用的系统设置

这里是对AD软件的一些系统参数进行设置,下面来介绍一些常用的功能该目录下有如上的设置,其中功能分别为:启动时会自动打开最近的一次项目启动时打开Home page启动软件时,显示启动动画。这里的三个功能可以依据个人喜好来进行设置这里主要用来设置在AD制作时常用的交叉探针。交叉探针功能可以根据原理图(PCB)文件中的元件来找到其对应的PCB(原理图)上面的位置。交叉探针的快捷键为T+C,使用效果如下:使用交叉探针可以对元件进行定位操作,并且系统设置中可以进行设置是否在交叉探针时进行高亮或者缩放等

2022-06-15 10:35:15 3652

原创 牛客刷题——两种排序方法

题目链接:两种排序方法考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法:1.根据字符串的字典序排序。例如:“car” < “carriage” < “cats” < “doggies < “koala”2.根据字符串的长度排序。例如:“car” < “cats” < “koala” < “doggies” < “carriage”考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。输入描述:输入第一行为字符

2022-06-08 22:29:30 254

原创 牛客刷题——求最小公倍数

题目链接:求最小公倍数正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。数据范围:1≤a,b≤100000输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。最小公倍数指的是既能被A整除也能被B整数的最小的正整数。有如下几种解法:1.暴力破解法从两个数中较大的数开始,逐个向上进行判断,遇到的第一个能够被A和B整除的就是最小公倍数,但是这样时间复杂度会很高,需要不断进行判断。2.更优解法两个数的最小公倍数实际上就是两个数的

2022-06-08 22:10:54 306

原创 牛客刷题——part8

函数重载需要满足的条件:在相同作用域中,函数名称相同,参数列表不同的函数可以称为函数重载。其中参数列表不同具体表现为:参数类型不同、参数个数不同、参数类型顺序不同,满足其一即可。与返回值类型是否相同无关。下面看选项:A:正确B:重载函数和返回值类型是否相同无关C:函数内部实现不同无法构成重载D:构成函数重载需要函数名称相同引用的特性:引用必须进行初始化。引用初始化后不能改变其引用的指向。引用又被称为别名。引用底层是使用指针来实现的,引用传参也是传递的地址。函数参数可以声明为引用或指针类型。E:引

2022-06-08 21:45:23 527

原创 Linux线程互斥

运行如下代码可以看到,这里是一个抢票的逻辑,让五个线程同时去抢100张票,如果对线程不加以限制的话,会产生票会变为负数也就是过度抢票的情况。这里就需要提到几个概念,例如像这里可以被多个线程的执行流共享的资源就叫做临界资源,其中每个线程对临界资源进行访问的代码就被叫做临界区。如果不对线程进行相关的限制,则会可能出现对临界资源的过度访问从而引发错误。因此Linux下的线程便有了互斥这个概念。互斥指的是在任何时刻,互斥可以保证有且仅有一个执行流能够进入临界区来访问临界资源,这样可以对临界资源起到保护作用。同时这

2022-06-07 22:26:21 503

原创 Linux线程控制

Linux下程序的执行被称为进程,而在一个进程内的一条执行路线就被称为线程,线程是一个进程内部的控制序列。每个进程最少有一个线程,这个线程被称为主线程。线程在进程内部运行,本质也是在进程地址空间内运行。进程是系统资源分配的基本单位,而线程是调度的基本单位,虽然线程共享进程数据,但是各个线程也有自己独有的一部分数据例如:上下文数据,栈,线程ID,寄存器等。进程和线程的关系如下图所示:线程作为一个执行流,理论上来说他也需要进程控制块类似的东西来进行控制线程的执行。但是Linux下的线程与Windows的不

2022-06-04 22:25:42 186

原创 平衡搜索二叉树——AVL树

正常的搜索二叉树中,一般而言查找一个数的时间复杂度几乎可以等价于log2N,但是正常的搜索二叉树可能会遇到一些极端情况,例如按照1,2,3,4插入数组,此时的搜索二叉树便会变为如下的情况:这种数据有序或者接近有序的插入数据此时的搜索二叉树会退化为一个单分支,此时查找效率就变成了O(n),并不能体现搜索二叉树的优势。此时,有两位数学家提出了一种方法来解决这种问题:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜

2022-06-03 22:07:46 356

原创 牛客刷题——Fibonacci数列

题目链接:Fibonacci数列描述Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输入描述:

2022-06-01 17:07:32 239

原创 牛客刷题——合法括号序列判断

题目链接:合法括号序列判断描述给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。测试样例:题中是判断括号是否合理匹配不成功的可能性有如下几种:

2022-06-01 16:58:52 295

原创 牛客刷题——part7

内联函数概念:inline修饰的函数被称为内联函数,其特性是在编译阶段会将内联函数展开,即函数调用直接使用函数体进行替换,这样的好处是减少了函数调用参数压栈以及创建栈帧等开销,可以提高程序运行的效率。但是inline是一个建议性的关键字,一般函数不是很长并且没有循环和递归是可以作为内联函数使用。结合题中描述来看,应该选C.######################################################################缺省参数是在函数声明和定义时,给函数参数带上一个

2022-06-01 16:17:18 664

原创 牛客刷题——把字符串转换成整数

把字符串转换成整数题目描述题目分析代码实现题目链接:把字符串转换成整数题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0数据范围:字符串长度满足 0 \le n \le 100 \0≤n≤100进阶:空间复杂度 O(1) \O(1) ,时间复杂度 O(n) \O(n)注意:①字符串中可能出现任意符号,出现除 +/- 以外符号时直接输出 0②字符串中可能出现 +/- 且仅可能出现在字符串首位。输入描述:输入一个字符

2022-05-31 10:03:07 295

原创 牛客刷题——不要二

不要二题目描述题目分析代码实现题目链接:不要二题目描述二货小易有一个W*H的网格盒子,网格的行编号为0-H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)输出

2022-05-31 09:46:33 264

原创 牛客刷题——part6

牛客刷题十进制变量i的值为100,那么八进制的变量i的值为:(C)A 146B 148C 144D 142题中要求10进制转8进制,这里转换方式和10进制转2进制类似,将10进制数字不断除以8商为各个位,最终结果为144,选择C执行下面语句后的输出为(A)int I=1;if(I<=0)printf("****\n") ;elseprintf("%%%%\n");A %%B ****C 有语法错,不能正确执行D %%%%题中这里使用的是printf格式化进行

2022-05-30 22:59:17 228

原创 map和set

map和set关联式容器setset模板参数列表set的构造set的迭代器set容量操作set增删查改inserterasefindmultiset注意事项mapmap的模板参数map的构造map的迭代器map的容量操作map的增删查改关联式容器STL中容器一般可以分为两类,一类是以vector、list、deque等为代表的序列式容器,他的特点是其底层为线性序列的数据结构,里面存储的是元素本身。还有一种是关联式容器,他也是用来存储数据的,但是和序列式容器的区别在于它里面存放的是<key,valu

2022-05-29 12:14:04 464

原创 信号的处理与捕捉

信号的处理与捕捉信号处理信号的产生信号的存放信号集信号集操作函数sigprocmasksigpending信号的捕捉signalsigaction信号处理信号的产生一般而言,Linux系统下信号产生有如下四种方式:键盘输入产生进程异常产生信号系统调用接口,如(kill,raise等)软件条件(管道,alarm等)信号的存放由于信号产生是异步的,信号可能随时会产生,但是操作系统并不能及时的去处理,这就需要要求进程有保存信号的能力。上一篇信号博客中讲解了进程存放信号的pending位图结构

2022-05-28 13:04:30 160

原创 非递归实现二叉树的前、中、后序遍历

二叉树的前中后序遍历二叉树的前序遍历题目描述题目分析代码实现二叉树的中序遍历题目描述题目分析代码实现二叉树的后序遍历题目描述题目分析代码实现二叉树的前序遍历题目链表:二叉树的前序遍历题目描述给你二叉树的根节点 root ,返回它节点值的 前序 遍历。题目分析非递归实现二叉树的前序遍历,这里可以先定义一个栈来存放给个节点。前序遍历的顺序是根左右,因此根据栈的后进先出原则,可以先将各个节点入栈,然后依次取出栈顶元素,将其再依次出栈,并遍历右子树中的节点。具体代码实现如下:代码实现vector&

2022-05-27 09:56:52 601

原创 牛客刷题——二叉搜索树与双向链表

二叉搜索树与双向链表题目描述题目分析代码实现题目链接:二叉搜索树与双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示数据范围:输入二叉树的节点数 0 \le n \le 10000≤n≤1000,二叉树中每个节点的值 0\le val \le 10000≤val≤1000要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱

2022-05-26 14:49:16 124

原创 力扣刷题——二叉树的最近公共祖先

二叉树的最近公共祖先题目描述题目分析代码实现题目链接:二叉树的最近公共祖先题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”题目分析对于一棵二叉树,要想找到最近的公共祖先节点有很多办法,这里仅介绍其中一种。根据题意,要找最近的公共祖先节点,首先对于一个节点,如果p和q分别在该节点的左右子树中,那

2022-05-25 15:10:51 272

原创 力扣刷题——二叉树的层序遍历Ⅱ

二叉树的层序遍历Ⅱ题目描述题目分析代码实现题目链接:二叉树的层序遍历Ⅱ题目描述给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)题目分析这里题目看上去很难,如果将二叉树自底向上进行遍历,似乎很难做到。但是不妨换个思路,如果将二叉树从上而下遍历形成的二维数组逆置,是否就相当于自底向上的遍历了。这样一来,思路就很清楚了。二叉树的正常层序遍历方法可以参考上一篇博客,这里就不多介绍了,这里只需要将最后结果进行逆置即可通过,代码如

2022-05-25 14:48:25 104

原创 力扣刷题——二叉树的层序遍历

二叉树的层序遍历题目描述题目分析代码实现题目链接:二叉树的层序遍历题目描述给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。题目分析二叉树的层序遍历对于C++而言还是比较好处理的,用一个队列容器存放每层的各个节点,然后不断出各个节点并入他们的子节点即可。这题的难度主要在于除了层序遍历以外,需要用一个二维数组来存放每层中的节点的值。这就意味着需要标识二叉树每层中节点的个数。这里可以使用一个整型变量来存放每层节点的个数,以此作为每层循环结束的标识,具体

2022-05-25 14:35:24 151

原创 力扣刷题——根据二叉树创建字符串

根据二叉树创建字符串题目描述题目分析代码实现题目链接:根据二叉树创建字符串题目描述给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对 “()” 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。题目分析根据题意,这里需要将二叉树的各个节点的值按照前序遍历的方式,转化为一个字符串。其中如果某个节点为空,则需要用()空括号表示。如果右子树为空则空括号可以省略,左子树为空但是右子

2022-05-25 14:17:09 185

原创 信号的产生

信号产生信号概念信号捕捉信号产生键盘产生程序异常core dump系统调用产生信号软件条件产生信号总结信号概念在Linux系统下,信号是进程之间事件异步通知的一种方式,例如我们终止前台进程使用的ctrl+c,就是一种信号。再比如在管道通信中,读端关闭,写端也是收到了信号然后将进程关闭。包括在进行调试代码时,遇到的段错误或者浮点错误,都是操作系统发送了相对应的信号从而对进程进行相应的处理。Linux下的信号种类可以通过kill -l命令进行查询。信号一共有62种,前31种为普通信号,后31种为实时信号

2022-05-25 10:30:42 288

原创 搜索二叉树——key/value模型

KV模型搜索二叉树KV模型KV模型实现基本框架插入查找遍历删除测试代码KV模型和上一篇博客中介绍的key模型的搜索二叉树不同,KV模型的搜索二叉树对于每一个key值都有与之对应的唯一的value值,即key,value是配对出现的。这种做法在生活中也有类似的应用,例如:查找中英文字典时候,单词和其中文翻译就构成一种成对的结构。再比如统计某些情况单词字符的出现次数,也可以使用该模型。KV模型实现基本框架 template<class K, class V> struct BSTreeN

2022-05-24 09:11:13 446

原创 搜索二叉树-key模型

搜索二叉树搜索二叉树概念实现搜索二叉树构成插入中序遍历查找删除搜索二叉树概念搜索二叉树作为一种树型结构,他和普通二叉树有如下几种区别:搜索二叉树的左子树,如果不为空的情况下,左子树上面所有节点的值都小于根节点搜索二叉树的右子树,如果不为空的情况下,右子树上面所有节点的值都大于根节点这个性质可以适用于该搜索二叉树的任意节点。这样看来对于一个搜索二叉树的中序遍历,即可实现从小到大遍历该二叉树中的所有节点实现搜索二叉树构成搜索二叉树节点的结构体和正常二叉树相同,都是由左右节点指针和其中存放的ke

2022-05-23 22:35:02 238

原创 system V——共享内存

共享内存system V共享内存共享内存函数接口shmgetkey手动查看/释放共享内存key和shmid区别shmctl挂接shmdtsystem VSystemV标准的进程间通信方式是在操作系统层面专门为进程间通信设计的一个方案。进程间通信的本质就是让不同的进程能够看到同一份资源。常见的system V结构的通信方式有如下几种:共享内存消息队列信号量这篇博客主要介绍基于共享内存的进程间通信方式。共享内存共享内存是通过某种调用,在内存中创建一份内存空间,然后通过函数调用,让需要参与进程通

2022-05-21 19:52:38 1217

原创 牛客刷题——统计回文

统计回文题目描述题目分析代码实现题目链接:统计回文题目描述描述“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”,B = “b”。这里有4种把B插入A的办法:

2022-05-19 20:03:11 162

原创 牛客刷题——连续子数组最大和

连续子数组最大和题目描述题目分析代码实现题目链接:连续子数组最大和题目描述描述一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3输入描述:输入为两行。 第一行一个整数n(1 <= n <= 100000),表示一共有n个元素 第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述:所有连续子数组中和最大的值。题目分析这里可以使用遍历的方式找出最大连续子数组的和,但是时间复杂度是On2,

2022-05-19 19:51:38 214

原创 牛客刷题——part5

牛客刷题以下程序的输出结果是?(D)int x = 1;do{printf("%2d\n",x++);}while(x--);A 1B 无任何输出C 2D 陷入死循环题中使用的是dowhile循环,这种循环的特点是先执行再判断。其次打印的时候使用的是后置++,先打印再++。在while判断中使用后置–,也是先判断后–。因此该程序先输入1,打印1后变为2,然后进行while判断,再减一,于是进入死循环,因此选D定义char dog[]=“wang\0miao”;那么sizeof(

2022-05-19 19:20:59 247

原创 牛客刷题——进制转换

进制转换题目描述题目分析代码实现题目链接:进制转换题目描述给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数输入描述:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。输出描述:为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)题目分析根据题目描述,该题目需要将输入的m转换为相应的n进制数。这里的进制范围为2到16进制。这里需要先定义一个字符数组,大小为16,其中字符从0开始一直到f

2022-05-17 22:17:03 696

原创 牛客刷题——计算糖果

计算糖果题目描述题目分析代码实现题目链接:计算糖果题目描述A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述:输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。

2022-05-17 21:58:56 168

原创 牛客刷题——part4

牛客刷题有以下程序,程序运行后的输出结果是©#include<iostream>#include<stdio.h>using namespace std;int main(){int m=0123, n = 123;printf("%o %o\n", m, n);return 0;}A 0123 0173B 0123 173C 123 173D 173 173题中格式化输出printf中使用了%o也就是要求进行8进制打印,8进制数字表示的形式的特征

2022-05-17 21:50:13 553

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除