![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OJ
文章平均质量分 67
臧初之
有时候,总想记录点什么东西
展开
-
【OJ】运行时错误(Runtime Error)导致递归爆栈问题
结论:反复运行测试,发现问题,应该是出现递归上,当输入n值足够大时,会出现n/2+1左右次递归,内存直接爆了,即递归爆栈(一般由递归时层数过深导致的)。测试用例太小了,导致未发现问题,需要修改递归代码。题目:给你一个整数n,问最多能将其分解为多少质数的和。在第一行输出最多的质数数量k,下一行输出k个整数,为这些质数。程序并没有错误,在pycharm上面能够运行出结果,在马蹄集上面测试也没有问题,一提交就出错。RecursionError:在比较中超过了最大递归深度。原创 2024-07-07 17:03:53 · 338 阅读 · 0 评论 -
[OJ]分数个数问题--采用欧拉公式
1/6,1/5,1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6可以看到这个集合中包含的分数有11个。例如N=5时,(1,2) , (1,3), (1,4), (1,5), (2,3), (2,5), (3,4), (3,5), (4,5)共9对数是互质数。2.这里1/6,1/5,1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5,5/6都是互为质数,可以根据欧拉公式求解。直接利用公式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)……...原创 2022-08-15 09:09:23 · 19384 阅读 · 2 评论 -
[OJ]信仰之跃、互质、求解同余方程、新世纪线段覆盖
现给定一根坐标轴,坐标轴上有n条线段,每条线段从1开始编号,若线段编号为k,则该线段覆盖的区间是:[(k-1)×m,(k-1)×m+l]。因此,只需要判断(8,11)(19,22)之间的数是否是d的倍数(注意,这里是开区间),仅且判断一次,如果是,这直接跳出循环,返回数字。则用(n-1)*m+l来对d取余,设j=((n-1)*m+l)%d,那么还差d-j个数便是下一个d的倍数。当k=1时,[(k-1)*m,(k-1)*m+l]为[0,8];当超出n的时候,例如n=2,d=4,m=11,l=8;...原创 2022-08-15 09:06:58 · 19290 阅读 · 1 评论