- 博客(10)
- 收藏
- 关注
原创 C程序实现螺旋矩阵
找出规律,并打印一个N*N的矩阵;规律就是从首坐标开始顺时针从小到大顺时针;把矩阵分为四组:分别是向右递增,向下递增,向左递增,向上递增。从小到大逆时针、从大到小顺时针、从大到小逆时针、思路相同。
2024-03-20 20:14:27 258 1
原创 【C语言】字符串拷贝函数分析
strcpy是一种C语言的标准库函数,strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*(字符型指针)。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。缺陷:strcpy函数并不检查目的缓冲区的大小边界,而是将源字符串逐一的全部赋值给目的字符串地址起始的一块连续的内存空间,同时加上字符串终止符。处理办法:在编写 strcpy 函数时,首先尽量使目的缓冲区长度足够长,另外要检测目的缓冲区和源缓冲区。
2024-03-20 19:52:57 1254 1
原创 C程序实现银行卡号校验
其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。编写程序,从键盘输入卡号,然后判断是否校验通过。偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。3、将奇数位总和加上偶数位总和,结果应该可以被10整除。最后35+35=70 可以被10整除,认定校验通过。
2024-03-03 18:08:11 376
原创 C程序实现单词逆序
编写一个C函数, 将”I am from shanghai!”倒置为”shanghai!from am I”, 及将句子中的单词位置倒置,而不改变。首先把整个字符串逆序,接下来分别逆序每个单词。
2024-01-31 13:44:07 242 1
原创 C程序实现更相减损术
是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,原文是: 可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。如果不可以折半的话,那么就比较分母和分子的大小,用大数减去小数,互相减来减去,一直到减数与差相等为止,用这个相等的数字来约分。从算法思想上看,两者并没有本质上的区别,但是在计算过程中,如果遇到一个数很大,另一个数比较小的情况,可能要进行很多次减法才能达到一次除法的效果,从而使得算法的时间复杂度退化为O(N),其中N是原先的两个数中较大的一个。
2024-01-29 16:10:54 351 1
原创 C程序实现辗转相除法
辗转相除法是一种递归算法,其基本思想是通过不断地缩小基数,最终找到两个数的最小公倍数。欧几里得算法又称辗转相除法,是指用于计算两个a,b的最大公约数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。公式法:由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。此时,余数为零的数就是两个数之间的最大公约数。以余数B作为基准数,再次将A与得到的余数相除,得到新的余数R2。将较小的数B与基准数A相除,得到余数R1。
2024-01-29 16:05:19 403 1
原创 C程序解决汉诺塔问题
印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。如果下方还有圆盘,则把辅助柱作为目标柱,再此进行第二步(把圆盘移动到目标柱);
2024-01-29 16:00:23 706 1
原创 C程序实现斐波那契数列问题
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……解决思路:从第三项开始,每一项都等于前两项之和。
2024-01-26 12:58:29 225 2
原创 C程序实现折半查找
是一种基于折半原理(分治思想)的搜索算法,它是用来定位一个给定值在己排序的数据结构中的位置。3、如果待查记录小于折半点记录,则在折半点的左半区继续折半查找;6、若查找范围为空,则表示待查记录不在表中,查找失败。2、如果待查记录和折半点记录相等,则查找成功,否则;5、重复上述过程,直到找到待查记录或查找范围为空;1、在有序表中取一个中问位置的记录(折半点)
2024-01-25 12:52:11 631 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人