蓝桥杯
爱学习的小仙女!
这个作者很懒,什么都没留下…
展开
-
欧拉函数确定1-n有多少个数和 n 互质详解 附C语言代码 蓝桥杯互质数的个数
我们已知30 = 2*3*5,那么1-30中有多少个数与30互质就可以通过减去不和30互质的数得到,既然2、 3、 5不是,那他们的倍数也就不是,所以要减去 30/2、 30/3、 30/5,但是减的时候多减掉了2和3的公倍数、3和5的公倍数、2和5的公倍数,所以要再加上,就相当于有三个圆,两两相交,中间有一部分是三个圆重叠,所以还要再减去30/(2*3*5),最后整理一下就是 上面的式子了。例如 8 = 2*2*2, 171 = 3*3*19, 30 = 2*3*5, 19 = 19。原创 2024-04-06 15:13:52 · 443 阅读 · 0 评论 -
DFS 全排列问题 C语言代码
关键在于进入dfs之后首先要判断是否达到停止条件,没有的话就要考虑对当前这个结点做什么,做完之后要继续下一层的 dfs ,下一层结束后要把当前结点的标志重新标为0。在main()函数中调用 dfs()时,括号里的参数是开始的层数,如 dfs(0) 指的是从第0层开始,而 dfs(1) 指深度为1的情况,这时候也就是有两个数排列好了。是一种遍历算法,尽可能深地向子树中的结点搜索,直到达到一定的深度,再回溯到上层的结点,继续搜索未被访问的结点。给定 4 个数 1 2 3 4,求他们所有可能的排列结果。原创 2024-04-03 14:29:39 · 839 阅读 · 0 评论 -
蓝桥杯 算法训练 出现次数最多的整数 C语言 ALGO50
定义另一个数组来存放每个数出现的次数,这里我是倒着数的,先让最后一个数字出现的次数为1,如果前面那个数和它相同,那就让前面的数字的次数等于这个数字的次数加1。例如1 3 3 5 5 5,先令最后一个5出现的次数为1,往前一个数字和它相同,所以倒数第二个数字出现的次数就是1+1=2,同理,倒数第三个5就是在倒数第二个5的基础上加1,即2+1=3。编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。输出格式:输出只有一行,即出现次数最多的那个元素值。原创 2024-03-16 15:09:00 · 444 阅读 · 0 评论 -
印章 蓝桥杯ALGO1007 C语言 小A买了m张印章,求小A集齐n种印章的概率
关于第三种情况为什么分为两个部分:我对动态规划的了解不多,我也不知道状态转移方程是怎么来的,做完这道题之后我觉得 状态转移方程就是考虑当前的这种情况如何通过前面的情况再发生点什么来得到,比如这道题我们要求 dp[i][j],就要考虑 i-1的情况、 j-1的情况甚至是i-2 j-2等,再结合实际,我们要有 j 种,那前面要么已经有 j 种了, 要么就是差这一张凑齐 j 种。最开始我对“集齐几种”的理解不太一样,我认为买两张,集齐一种的可能性为1,也就是 j 为1那一列应该都为1,但是不对。原创 2024-03-01 18:55:51 · 1109 阅读 · 0 评论 -
十进制转十六进制 C/C++蓝桥杯基础试题BASIC-10
它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。例如十进制数18,首先模除16得到最末一位2,再除以16得1,此时进入第二次循环,2模除16得前面一位2,再除以16得0,不会进入第三次循环。最后的结果就是十六进制的12,表示有一个十进制的16和一个十进制的2。)中不能定义变量,如for(int i=0;原创 2024-01-30 19:03:33 · 547 阅读 · 1 评论