自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lua语言:从入门到高级

- 函数分为局部和全局-- 局部定义为local,全局就是不加修饰print(var)end--函数的另一种定义法,将函数名写在前面print(var)endage = 18,print(t.name) -- 访问对象的属性。

2024-03-30 22:09:14 342 2

原创 双端优先队列deap及其代码实现

【代码】双端优先队列deap及其代码实现。

2023-10-22 16:23:30 83

原创 大整数类实现阶乘

大整数类算阶乘

2022-07-06 22:55:12 161 1

原创 学习记录——高精度加法和乘法

高精度加法和乘法

2022-07-06 17:36:56 125

原创 学习记录——用栈实现表达式求值

#include <iostream>using namespace std;class stack//栈{public: char data; stack* next;};int m = sizeof(stack);stack* iniStack()//初始化空栈{ stack* s = (stack*)malloc(m); s->next = NULL; return s;}bool isEmpty(stack* s){ return s-&g.

2022-02-25 21:10:37 312

原创 学习记录——行编辑程序

数据结构P49void LineEdit(){ stack* s = iniStack(); char ch; ch = getchar(); while (ch != EOF)//输入文本 { while (ch != EOF && ch != '\n')//输入每行 { switch (ch) { case '#': pop(s); break; case '@': clear(s); break; d

2022-02-24 19:10:37 285

原创 学习记录——括号匹配检验

思路:左括号入栈,右括号与栈顶匹配,相对应就pop,若最后为空栈,说明匹配。bool isMatch(char* c){ stack* s = iniStack();//建立空栈 for (int i = 0; c[i] != '\0'; i++) { switch (c[i]) { case '(': case '[': case '{': push(s, c[i]); break; case ')': if (top(s) == '(')

2022-02-24 17:33:46 235

原创 学习记录——栈实现10进制向任意进制的转换

int conversion(int num,int scale)//num为需要转换的10进制数,scale为转换成的进制{ //原理见数据结构P48 stack* s = iniStack();//构建空栈 int ans = 0; while (num) { push(s, num % scale); num /= scale; } while (!isEmpty(s)) { ans = ans * 10 + pop(s);//此处pop = top + pop /.

2022-02-24 16:59:05 298 1

原创 学习记录——一次多项式相加

//头指针---头结点#include <iostream>using namespace std;class Link{public: int coff;//系数 int exp;//指数 Link* next;};int m = sizeof(Link);void iniLink(Link *head)//要加&吗?{ head->next = NULL; cout << "请输入项数:" << endl; int n.

2022-02-24 15:17:31 604

原创 锦标赛法求最大值和次最大值

void Max2(int arr[], int len)//求最大值和次最大值的算法{ int k = log(2, len);//k为比赛场次 int p = 1, q;//p表示和比赛对手的间隔,q表示两场比赛的间隔, for (int i = 0; i < k; i++)//i可表示当前比赛的小跟班个数 { q = p * 2;//两场比赛的间隔是和对手间隔的两倍 for (int j = 0; j < len; j += q)//模拟每场比赛 { if (.

2022-02-22 21:07:02 812

原创 学习记录——快速排序

//快速排序基本步骤://1、把最左边元素定为中心轴,最左边下标定为left,最右边下标定为right//2、把比中心轴小的放到左边,大的放到右边,left++、right--,直到相等然后用中心轴赋值//3、再对中心两边子列分别递归重复以上步骤void quicksort(int array[], int begin ,int end)//begin和end是针对数组下标的排序起点和终点{ int piovt = array[begin];//初始化第一个元素为中心轴 int left .

2022-01-09 14:44:01 260

原创 学习记录——十进制转二进制(C++ 、vector)

int change(int n){ vector<int>array;//先用vector记录 unsigned int result = 0;//然后转成数 while (n != 1)//模拟短除法 { if (n % 2 == 0) array.push_back(0); else array.push_back(1); n /= 2; } array.push_back(1); reverse(array.begin(), array.en.

2022-01-02 13:13:07 361

原创 学习记录——16进制转10进制

void change(char s1[]){ int sum = 0;//初始化结果 int length = strlen(s1)-2;//获得长度(除去0x) *(s1+=2);//让*s1指向第三个元素 for (; *s1 != '\0'; *s1++) { int num;//字符ASCII码转化成的数字 if (int (*s1) >= 48 && int (*s1) <= 57)//如果字符是数字 { num = int (*s1).

2022-01-01 21:00:25 508

原创 学习记录——不重复随机数数组的优化

若要定义一个数组,使里面数的顺序不重复且随机,如扑克牌洗牌,52张牌的数组随机给每一个元素1-52的数字。优化前方案:定义一个i从1-52的for循环,里面写一个do-while语句,生成随机数x直到array[x]不等于0,把i的值赋给x。缺点:随着被赋值的数组元素增加,随机数满足array[x]不为0需要的次数会大大增加。优化后方案:把数组元素按正确顺序赋值,然后让数组元素随机交换52次。...

2021-12-16 15:31:39 223

原创 学习记录——冒泡排序、选择排序和插入排序

void bubble(int array[], int length){ for (int i = 0; i < length-1; i++) { bool isSwap = false;//判断是否交换 for (int j = 0; j < length - i - 1; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1];.

2021-12-13 20:02:52 322

原创 学习记录——筛法求素数

#include <iostream>#include <vector>using namespace std;int main(){ int size = 0; cin >> size; vector< int > array(size); //1、先设置所有数为素数 for (int i = 0; i < size; i++) { array[i] = 1; } //2、遍历数组,如果是素数,就让他的倍数不是素数.

2021-12-11 22:41:39 394

原创 学习记录——strcpy、strcat、strcmp、strlen、strstr

(1)两个字符串比较strcmp函数(函数功能及调用形式参考教材图22.24);(2)两个字符串连接strcat函数(函数功能及调用形式参考教材图22.23);(3)子串定位函数strstr函数(函数功能及调用形式参考教材图22.40);int strcmpC(const char *s1,const char *s2){ for (; *s1 != '\0' || *s2 != '\0'; *s1++, *s2++)//两个都为\0才结束for循环 { //当一个...

2021-12-09 22:27:39 271 3

原创 学习记录——字符串拷贝的三种方法

逐渐简介和抽象....void copy0(char s1[], const char s2[]){ int i ; for (i = 0; s2[i] != '\0'; i++) { s1[i] = s2[i]; } s1[i] = '\0';}void copy1(char *s1, const char *s2){ for (int i = 0; (s1[i] = s2[i]) != '\0'; i++);}void copy2(char *s1, const c

2021-12-09 20:00:16 285

原创 学习记录——数组的六种表示法

int b[] = { 4,5,3,6,2,5,1 }; int *bPtr = b; //另一种表达方式 int *bPtr = &b[]; //数组下标 for (int i = 0; i < 7; i++) { cout << b[i] ; } cout << endl; //内置数组做指针的偏移量表示法 for (int i = 0; i < 7; i++) { cout << *(b + i) ; }..

2021-12-09 14:33:18 1973

原创 学习记录——斐波那契数列(for循环)

void func(int n){ //斐波那契数列 int a1 = 0;//第一项 int an_1 = 1;//开始初始化为第二项,下划线表示减号 int an = a1 + an_1;//开始初始化为第三项 int temp;//临时变量做交换用的 for (int i = 1; i <= n; i++) { if (i == 1) { cout << a1;//输出a1 } else if (i == 2) { cout &lt.

2021-11-10 19:49:25 877

原创 学习记录——返回一个数逆序数的函数

int reverse(int number){ //求出位数 int weishu = 0; int temp = number; do { temp /= 10; weishu++; } while (temp != 0); //求出逆序数 int result = 0; for (int i = 0; i < weishu; i++) { //得到末尾 int temp; temp = number % 10; number /= 10;//原.

2021-11-01 19:12:59 232

原创 学习记录——打印菱形的代码

题目:输入一个数n,输出2n-1行的菱形1. 可把中间行标记为0,向上依次记为-1、-2、……,向下依次记为1、2、……2. 则每行输出的空格数就为abs(i),abs表示取绝对值3. 分析可发现,每行星号的个数为(2n-1)-2 * abs(i)综上,步骤依次为:(1)初始化i为 -n;(2)输出abs(i)个空格;(3)输出(2n-1)-2 * abs(i)个星号(4)输出换行符;(5)i++,依次重复以上步骤,直到i>n,结束程序。...

2021-10-27 21:09:39 237

原创 学习记录——负数的计算机表示,补码和反码

1. 原码: 原码就是符号位加上真值的绝对值,即用第一位表示符号, 其余位表示值。 如-3 = 10000011 ,3 = 00000011因为第一位是符号位,所以8位二进制数的取值范围就是: [11111111,01111111] 即 [-128,127]2. 反码:反码是数值存储的一种,多应用于系统环境设置。 (1)正数的反码是它本身; (...

2021-09-13 16:34:37 668

空空如也

空空如也

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

TA关注的人

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