![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
星河欲转。
不淋漓尽致,又怎得风采。
展开
-
斐波那契数列(三种解法)
斐波那契数列,指的是这样一个数列:0,1,1,2,3,5,8,……,我们可以观察到,这个数列从第3项开始,每一项都等于前两项之和。求斐波那契数列的第n项。原创 2023-12-07 11:47:02 · 427 阅读 · 0 评论 -
c/c++的字符和字符串输入输出
c/c++的字符和字符串输入输出.原创 2023-12-03 15:30:54 · 1914 阅读 · 0 评论 -
c/c++ 字符 - ‘0‘ 或者 + ‘0‘ 的含义
c/c++ 字符 - ‘0‘ 或者 + ‘0‘ 的含义原创 2023-11-27 18:08:54 · 917 阅读 · 0 评论 -
引用传递和值传递的区别
/y=foo(2),值调入,x=2,b=x-1=1,然后g(x,b),对应第二个函数g(int b,int &x),这个时候b=x=2,&x=b=1,然后b=b+1=3,x=2*b-x=5,返到第一函数,b+x=2+5=7这里的b原来运算为1 ,经第二步后变为2,在第二个函数体内并不改变它在第一个函数体的值,而x从传入的2,经第二步后,变为1,然后在第二个函数体内运算为5,所以在第一个函数体内变为5。//如果是机试,相信各位可以调试出结果,但由于软考是笔试,更考验大家的思维。原创 2023-03-14 10:49:24 · 116 阅读 · 0 评论 -
关于循环浅析
总结,这些语言的循环都是类c的,掌握好c,学习其他是比较容易的,这些的区别主要在于for循环,python中有range(),java中有增强版(不过这个增强版在c++中也可以使用),还有scala这类较为独特的。大多数使用一重循环,二重循环,各循环之间相互嵌套,也可以通过变量,使得二重循环变为一重循环等,除此之外,还有迭代,用的也是for循环,只是展现形式不同罢了。for 循环中的“表达式1(初始化条件)”、“表达式2(循环条件)”和“表达式3(自增或自减)”都是可选项,都可以省略(但分号。原创 2022-11-24 15:42:15 · 525 阅读 · 0 评论 -
c/c++中指针和取址符
s=0;i原创 2022-08-22 23:35:03 · 281 阅读 · 0 评论 -
DP(动态规划)模板
/这个是我写的比较详细的一个,代码就这么几句,核心是第二个循环,如何理解这个思想,通过打草稿去模拟这个过程。//可根据情况更换v,w;也可据情况将max换为min(以下代码来自下面链接题目,但大多数可以相通)。//关于v和w有些是数组,还有的需要借助结构体。//该模板只针对一般情况。原创 2023-04-15 18:46:28 · 114 阅读 · 0 评论 -
字符串减0和减‘0‘的区别
1.x为整型,s[i]为字符型,相当于字符型强制转换为整型输出,也就是字符对应的ascll码。(这里的"-0"不加也是可以的。2. 首先这种输出不符合规范,如果非要理解的话,以h输出56为例,ascll码56对应的字符是8,而h正是从a开始的第8个字符。4.对于数字字符,通过减'0'操作后就是将这个数从字符型转为整型(这里的转换只改变类型,不改变数字本身),这点经常使用到。5.这一点就是将得到的ascll码值通过前缀(char)使得其为字符输出。3.和第一种同样的,输出的即是对应字符的ascll码。原创 2023-04-15 17:53:16 · 402 阅读 · 0 评论 -
并查集模板
这里上图比较简单,按理来说,是把 x当作y的父节点或者应当作x的父节点,最后挂到同一个根节点上,我们,通过函数体,去寻找他的根节点,以根节点的值作为一个整体的区别,根节点下的所有节点都等于根节点的值,因为我们令数组,a[i]=i,最后只要统计有几个a[i]=i就可以。假设题目:我们输入两个数你n,m,然后输入m对数x,y,表示该两个数产生联系,求有几个独立的,也就是把产生联系的看作一个整体,而统计两两不产生联系的整体有几个。//下面给大家展示并查集模板,遇到此类题,直接套模板。原创 2023-04-09 18:47:51 · 53 阅读 · 0 评论 -
约瑟夫问题
n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。//总的来说,此题考的是模拟,第一种方法比较简单易理解,其他的采用了链表知识,可以在草稿纸上推演一下过程就能更好的理解。//下面为大家提供六种解决办法,除第一种外,其他都参考自罗勇军《算法竞赛》一书。//下面四篇博客和此题有一定联系。//用结构体数组实现单向静态链表。//用结构体数组实现双向静态链表。输入两个整数 n,m。原创 2023-04-04 16:39:41 · 319 阅读 · 0 评论 -
if-else分支条件浅析
y.c&&x.a==y.a),另一种是逻辑错误,应先在总成绩相等和语文成绩相等时再执行,而不是去直接判断语文成绩,这样忽略了总成绩是否相等。本人强调的目的在于,我们要么全部使用if一条条判断,如果用到else if和else的时候注意上下逻辑关系,不仅要根据题意不多不少写清楚每个条件,保证得到应有输出,还要注意分支语句。//该代码if执行a,b同时为0的情况,而else就有三种情况:a=0,b=1;题目:成绩排序,先按总成绩排序,如果总成绩相同,按语文成绩拍序,如果语文成绩相同按数学成绩排序。原创 2023-02-18 20:33:14 · 691 阅读 · 0 评论 -
如何删除前导0
首先来说刚开始遇到的0是不操作的,直到遇到非0时输出,并且进行标记,这个标记代表此时已经不存在前导0了,然后后面不管是中间还是末尾的0都输出,用或者的方式去判断。众所周知,在整数范围内是不显示前导0的,例如这里有个整数0050,输出来后只是50,除非题目有格式要求,然后才会进行控制,或者将他转为字符串然后输出。1.第一种方法就是判断其是数字,然后累乘累加起来,这种方法的弊端在于当字符串过于长而超出x所定义的范围的时候就不行了。题目:输入一个字符串,将其中的数字转换为整数输出。输出样例:123004500。原创 2023-02-18 13:10:26 · 2054 阅读 · 0 评论 -
最大约分函数
1.首先判断b是否为0,为0输出a,反之,进行下一步运算,令a等于b,b等于之前的a去%b,然后再次判断b是否为0,直到a为0跳出循环或函数递归。关于最大约分函数,有以上两种形式,第一种较为简洁,第二种较易理解,不过这里需要保证a>=b,如不,需要进行交换。原创 2023-01-27 15:58:50 · 216 阅读 · 1 评论 -
push与push_back
1.push():在 queue 的尾部添加一个元素的副本。empty():如果 queue 中没有元素的话,返回 true。front():返回 queue 中第一个元素的引用。back():返回 queue 中最后一个元素的引用。2.push_back():函数将一个新的元素加到。//pop_back() //移除最后一个元素。pop():删除 queue 中的第一个元素。size():返回 queue 中元素的个数。的最后面,位置为当前最后一个元素的下一个元素。原创 2022-12-27 16:10:06 · 2226 阅读 · 0 评论 -
while循环和或运算小解
为此我也是查阅了或的运算知识:因为是||,即或表达式,前面计算结果如果是非0,后面的部分不计算了,所以x=x+1=2,y不变为1,c是两个1或后的结果当然是1,所以最后为211.这题你可以这样理解,其实n=2的时候,循环已经结束,然后n又加了一次,所以最后n=3,先判断循环内的条件的true或false,决定循环继续还是退出,然后再n++今天也是在微信群遇到了一个小伙伴发的两道c语言题目,觉得有意思,自己倒是代码一运行就出来了,不过如果光读代码的话,还得深层次理解一下。原创 2022-12-07 23:34:59 · 290 阅读 · 0 评论 -
并查集浅析
这里上图比较简单,按理来说,是把 x当作y的父节点或者应当作x的父节点,最后挂到同一个根节点上,我们,通过函数体,去寻找他的根节点,以根节点的值作为一个整体的区别,根节点下的所有节点都等于根节点的值,因为我们令数组,a[i]=i,最后只要统计有几个a[i]=i就可以。我们输入两个数你n,m,然后输入m对数x,y,表示该两个数产生联系,求有几个独立的,也就是把产生联系的看作一个整体,而统计两两不产生联系的整体有几个。这里本人不对代码作解释,而是只对并查集作自我总结,这里本人随便写了一个测试用例,便于理解。原创 2022-12-05 17:16:47 · 451 阅读 · 0 评论 -
csdn编程竞赛
这里本人完成了第一道,感觉算是签到题吧,然后第三题过了70%的用例,第一次参加csdn比赛,不知道过了部分样例也有分,时间上也没用到这么多时间,后面有事就没继续做了,这里给出本人的代码,欢迎大家留言评论,看不到原题目,看的时候觉得说剩下两题和只过了部分用例那题是能够理解的,如果能找到原题目,还想继续思考思考。第一道本人就是判断法则,或许有更简便的方法。感觉是简单的,就是样例没理解2怎么算出来的。题目当时懂了,就是觉得实现有难度。原创 2022-12-05 12:08:25 · 259 阅读 · 0 评论 -
STL浅析
vector 、 stack 、 queue 、 map 、 set 这些在C++中都叫做容器,这些容器的⼤⼩都可以⽤ .size()获取到,就像 string s 的⻓度⽤ s.length() 获取⼀样~( string 其实也可以⽤ s.size() ,不过对于vector 、 stack 、 queue 、 map 、 set 这样的容器我们⼀般讨论它的⼤⼩ size ,字符串⼀般讨论它的⻓度 length ~其实 string ⾥⾯的 size 和 length 两者是没有区别、可以互换使⽤的。原创 2022-11-14 14:24:55 · 541 阅读 · 0 评论 -
sort 函数排序之cmp浅析
结构体排序简单的和普通排序是一样的,复杂一点是这样出现的,例如,按总成绩大小进行排序,如果总成绩相同,按语文成绩排序,如果语文成绩相同,按数学成绩排序,这类题目无非就是在cmp进行if和else的判断。出现结构体排序的情况,是我们对一类数据排序的同时,它的关联项也跟着按它的顺序排列,比如按总成绩排序,成绩对应的个人也是跟着走的。5.这里还有一点,就是有些时候返回0或1以及返回true或false得不到正确结果,这是因为。比如我们return x原创 2022-10-27 15:28:04 · 4617 阅读 · 0 评论 -
求解幂集问题
对于给定的正整数n(1原创 2022-10-17 12:50:32 · 1041 阅读 · 0 评论