- 博客(19)
- 收藏
- 关注
原创 洛谷P1029 最大公约数和最小公倍数问题(c语言版)
利用一个循环 首先 P*Q=x*y 两数相乘=他们的最小公倍数 X 最大公约数。这题最开是 我想的 是 i j 双循环嵌套 遍历一遍 时间复复杂度O(n^2)首先 p q都是整数 所以if来判断一下 如果不是整数 就跳过下面的操作。这里用辗转相除法 来求i j的最大公因数 看是不是x 即确定是否满足要求。所以这里就用一个循环 i j用上述进行替换。每次加x是因为 他们的最大公约数是x所以 必是x的倍数。欢迎各位大佬补充更简单的 代码思想!
2024-09-14 22:54:54
213
1
原创 文件存储型 通讯录 实现 (C语言)
功能都测试过 没有问题 各位课设的朋友 拿去吧。函数库(源文件):function.c。主函数(源文件): zhu.c。我的vs是2019版的。
2024-09-12 10:06:03
322
原创 24 秋招 美团第五场笔试(算法策略方向)
首先拿到这道题:首先想到数组存下这个序列然后来删 显然行不通 因为题目说了是无限长,并且注意xy的范围 没有数组装得下。从第二次输入开始 就要检查 前面的每一次输入 判断是否和前面的输入有重复的地方。q最大可以10000 一维数字装不下 所以采用二维 100x100 完全够用了。每一行有两个数 并且这两个数 和输出的那个数是有关系 所以不能分开储层。每一次新的输入 都要去检查之前的输入 看有没有重合 有重合的话 去增加长度就行。zu用来就行数组的偏移。
2024-09-08 23:02:24
668
原创 洛谷 P1012 拼数 (C语言解题答案)
解题思想很简单: 两个数 a b 左右拼起来 比较ab ba 大小即可。首先 有n个数来进行比较 可以采用qsort函数 来进行排序 我们设置比较函数就行。两个我都 倒着存的 因为模10比较方便 最后比较从 后面往 前面 比较就行。这里就可以采用 字符数组来拼数 每个元素存一位值 来比较大小即可。稍微解释一下:有了上述思想 具体代码实现应该不是问题。上述代码 函数里面的代码 还可以优化 这里就交给你们了。读者一定要去研读一下。
2024-09-08 22:41:23
419
原创 洛谷 P1022 计算器的改良 (c语言)
此题没啥特别说的 就是需要特盘一下 解出来为0的值 因为计算器可能就出来是-1。可以继续优化 各位大佬可以来讨论一下。
2024-09-05 09:07:45
297
原创 洛谷 P1015 回文数 解题思路及答案
又因为 不知道输入的时候M是多少位 直接用 int型 数组显然不方便,也不太现实。整型数组里面存储的是 M这个数的每一位!解题思路: 首先考虑到 M它的进制是未知的,并且100位之内,显然我们传统的 int、long long型就不能满足其要求,故这里考虑 用数组进行存储。2~10 进制的话 其可能的数字就是 0~9 所以减去 字符‘0’ 即可 得到的就是实际输入的数字。16进制的话 有ABCDEF 这道题的测试点是默认输入大写字母哈!
2024-09-02 21:13:27
512
原创 洛谷 P1009 阶乘之和 (高精度算法)
比如上述50的阶乘 常规方法没法存下它 但是 int arr[1000] 这个数字肯定可以存下它 50!的每一位存在一个数组元素里面 这样就解决了 大数的乘法。这里解释为什么逆序给他存入arr2的 因为我们做算数都是从各位开始的 ,所以逆序存入,方便向高进位!数字的低位在低地址 高位在高地址。另一方面就是:做加减法 位权相同的要对齐 都从数组arr[0]开始 自然就对齐了。对于阶乘部分解释:数字的低位在低地址 高位在高地址。记住高精度的算法的精髓 :利用数组 来存放结果!
2024-08-31 15:06:32
403
原创 洛谷 P1002 [NOIP2002 普及组] 过河卒 题解 (C语言递归解法)
递归之前 先判断arr[a][b]处的值 如果为初试值0 则为该位置未递归 所以采用递归并赋值及该位置就存下了 (a,b)到终点的路劲次数 后面用到了直接 return arr[a][b]即可 大大减小递归次数。比如这里(1,1)到终点的路径次数是固定不变的,不用每次都计算,而把第一次计算的值存下来,后面遇到了直接拿来使用!这里的二次的指数型增长 以及重复递归的结果。(0,0)递归到(0,1)和(1,0)(0,1)递归到(0,2)和(1,1)(1,0)递归到(1,2)和(1,1)
2024-08-28 23:45:47
497
原创 扫雷 完整版代码 有四个模式可供选择 完全实现扫雷小游戏 (进阶版)
【代码】扫雷 完整版代码 有四个模式可供选择 完全实现扫雷小游戏 (进阶版)
2024-08-08 18:10:30
210
原创 对于扫雷 点一块消周围一片没有雷的区域
可以看到上面那个盘为实际游戏显示的 下面那个盘是实际游戏过程中,不会显示的这里为了演示消0区 故拿出来。最开始想到采用递归,对点的那一块周围八块进行递归操作 8个递归 实际过程中 会产生栈溢出 无法使用。一个函数里面又调用八次 8的指数倍增长 会造成栈溢出 故这里想达到这个效果递归不在可用。可以看到这里 没有雷 实际的效果希望可以直接消一些方块。复制了四个 实现了需要的效果 而且不会溢出。即可实现 扫雷中 点一块 消很多块的效果。
2024-08-08 12:43:05
224
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人