- 博客(22)
- 收藏
- 关注

原创 系列检索
写在前面大一上确实有点放荡,没学会什么有用的东西,非常可惜。细????我的朋友都已经起飞了,我才刚刚摸到飞机。还是想写点东西记录一下自己的生活,能在写代码之余也能更进一步。目录...
2021-04-16 16:42:53
251
2
原创 北大C++012:这个指针哪来的
getPoint()前面的p是一个常量指针,所以这个函数应该是一个常量函数。所以我们在声明这个函数的时候,要在后面加上const。我们既然声明的是指针函数,所以是A* getPointer(),返回值就不再是*this了,而是直接使用this。
2024-03-29 18:45:21
218
原创 北大C++011:Big & Base 封闭类问题
这是一个封闭类问题。封闭类就是有成员对象的类,例如本题Base类,它出现在了Big类中,这就是一个封闭类。为了防止封闭类出错,我们需要自己去做一个构造函数。这里也使用了初始化列表的方法。对每组数据,输出两行,每行把输入的整数打印两遍。多组数据,每组一行,是一个整数。
2024-03-29 18:23:46
321
原创 北大C++009:哪来的输出
析构函数会在调用delete 或者 数据摧毁时调用。所以题目中delete调用了一次,在文件结束main函数时,释放了a,又调用了一次。出现奇怪输出的原因是调用了析构函数。endl标识符用于换行。
2024-03-28 22:14:44
274
原创 北大C++007:返回什么才好呢
给一个函数赋值,就要用到引用的功能。一开始想到的是int类型,毕竟它等号后面是m,是一个数。但是看下一行的输出,是a.val的格式,并没有返回这个函数。所以它的类型应该是A,而A是一个类,并不是一个int的变量,所以这里使用了类型转化的构造的方法,我们需要一个只有一个参数的构造函数,让编译器自动处理类型的转换问题。首先输出的是123,说明调用了一个无参数的构造函数,使得val变为123,所以无参构造函数就要实现这个功能。这题不了解的就是该函数的返回值,return 的内容是*this,它指的就是对象本身。
2024-03-28 21:14:27
370
原创 北大C++005:编程填空:学生信息处理程序
实现一个学生信息处理程序,计算一个学生的四年平均成绩。要求实现一个代表学生的类,并且类中所有成员变量都是【私有的】。补充下列程序中的 Student 类以实现上述功能。
2024-03-28 19:29:55
362
原创 北大C++004:神秘的数组初始化
题目中对a[3][5]进行赋值操作,是一个二维数组,但是我们题目中给的却是一维。所以我们就需要申请一个更大的空间,用来存放第二个维度。a[3][5]相当于第4排,第6个数,所以我们就需要申请至少6个空间,故填写new int[6]。一个指针数组,指向的是数组第一个元素的地址。这个数组的大小要我们来定义,所以我们要在后面括号里填写这个数组的内容物。a[2]在main函数里进行了赋值操作,我们需要给他申请一块空间,所以填写new int[1]。a[1]没有特定要求,填谁都可以。由main函数里的判断。
2024-03-28 19:20:14
233
原创 8、Pop Sequence(简单方法)
这道题一次就全AC,太爽辣(编译错误可能是因为不能提前声名函数,把后面的函数全放前面就可以)题目题目意思很好理解,大体就是判断一个先入后出的堆栈,能不能得到以下的输出结果。第一行有三个数据:栈的大小 判断数据的数量 判断几次之后每行就输入你要判断的输出的数据。例如1,2,3顺序入栈,你能控制输入输出的时间,得到123,321,213等数据,得不到312。代码分析简单分为3个部分,输入,判断,输出。我们每输入完一次数据,就进行一次判断,得出结果并输出。主函数#include<
2021-04-17 11:02:36
718
原创 7、Reversing Linked List(包含题目解析)
第一次做英文题,讲真这翻译,这输入例子给的,真tm尴尬。。。 啥都没讲清楚,就让你做。我在网上找答案然后不断改动输入数据,才大概摸清了题目的意思。 关于方法,我的有点强解的味道,很不巧妙。后来去看了别人AC的方法,确实妙,完美的用上了“地址”这一信息,我也不想在做一遍了,我就把这种最好理解的方法分享给大家。题目看不懂就对了。第一行输入了3个东西第一个数据的地址 数据总个数 反转的数据个数反转比较容易理解。比如有1-2-3-4-5-6,以3反转,得到3-2-1-6-5-4。以4反
2021-04-16 16:39:03
1053
原创 6、一元多项式的乘法与加法运算(线性表实现方法)
前言 真的醉了,写了一个下午。一开始感觉题目离不了数据的调用,因此使用了线性表的方法,写的时候那叫一个折磨。但我认为我提供了一个不同于链表的方法,还是打算分享给大家。我是伞兵题目设计函数分别求两个一元多项式的乘积与和。 题目真的很抽象,我们这样理解。第一行 4 3x4-5x2+6x1-2x0第二行 3 5x20-7x4+3x1把两个多项式相乘,相加,输出类似的结果。如果相乘或相加后是0,输出0 0。代码分析主函数#include<stdio.h>#i
2021-04-16 10:29:03
915
原创 5、最长连续递增子序列(线性表的实现)
这道题真让我感受到了啥叫一个bug改一天。 偏偏就100000个数的时候测试没过,真的难顶。测试了好多数据都是正确的,最后输入1 2 3 1 2 3 1 2 3找到了问题,最后真是一行代码位置的问题,麻了。题目给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。分析思路是很明确的,我们遍历一次线性表,找到递增的所有子序列,用一个下标存最长的那一串,之后输出就可以了。大体思路有了,
2021-04-13 21:40:44
799
原创 4、输出全排列(递归方法)
本来这篇早就该写了,但一直没有时间,鸽到了现在,略微有点愧疚。题目 输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a1,a2,⋯,a**n排在序列b1,b2,⋯,b**n之前,如果存在k使得a1=b1,⋯,a**k=b**k 并且 a**k+1<b**k+1。 讲真这题目确实抽象,我们看个例子 让我想起了初中的数学题。。。分析 在我看来,递归确实难以理解,但这种题,每一位都循环着走是一种解法,但循环次数是随着输入的值动态变化的。以我目前的知识
2021-04-13 21:10:41
10695
1
原创 3、数列求和(加强版是什么鬼)
今天看书才发现return 0有多么重要,之前一直认为可有可无,基本没写,之后一定会改正这个烂习惯。题目 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+A**A+AAA+⋯+A**A⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。分析 这时铁有人跳出来,这么简单的题都好意思发出来,这不直接用循环就能搞定的问题,散了散了。 阿哲 我一开始也是这么想的,几次想跳过这道题,但想来想去放在算法书里一定有它的道理。于是我用最基础的方法
2021-04-09 17:45:13
247
原创 2、二分查找(一般方法和递归方法)
二分查找 二分查找法是一种查找数据在数组中位置的方法。通常,使用循环遍历就可以找到数组中每一个需要找到的元素。但当数据内容很多时,遍历的效率就显得十分低下。因此引入二分查找的方法,大大缩小了查找的耗时。 在一个数组从小到大排序好的前提下,二分查找可以这么理解。 存在一个序列a[N],一个待查找的数num,先找到这个序列的中点a[mid],与num比较,若相等则返回下标mid;否则,a[mid] > num,说明待查找的数在左边,便舍弃右边,对左边继续二分查找。反之,a[mid] <
2021-04-08 08:44:43
642
原创 1、最大子列和问题(包含4种算法)
1、最大子列和问题题目在一个列表中,有许许多多的子列,我们的目的,就是求最大子列和是多少。例如{-2,11,-4,13,-5,-2},最大子列是{11,-4,13},和为20。主函数#include<stdio.h>#define N 100000int findMax(int num[],int n);int main(){ int i,n,maxSum; printf("输入该列表的元素个数"); scanf("%d", &n); int num[N];
2021-04-04 13:23:47
2455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人