为何超时 --java D题

BigInteger b1 = new BigInteger(next());
BigInteger b2 = new BigInteger(next());
out.println(b2.gcd(b1.mod(b2)));
全部评论
Java中大数BigInteger类的gcd方法底层是欧几里得算法 理论上是最优算法   时间复杂度为O((log(max(a, b)))^2) 但是 BigInteger的运算需要考虑到操作数的位数,特别是在位数相差较大时,性能可能稍有影响。 如果两个大整数 a 和 b 的位数相等,那么时间复杂度可以接近 O(log(a)),其中 a 是位数。 如果两个大整数的位数不相等,BigInteger会执行多次模运算和移位操作来逐步减小问题规模,这些操作可能需要多次迭代,导致时间复杂度稍微增加。 你看题目 a是大数 b是32位
2 回复 分享
发布于 2024-07-14 21:07 吉林
我觉得他这么出题就是为了卡Java...
1 回复 分享
发布于 2024-07-14 21:14 吉林

相关推荐

代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
你们的毕业论文什么进度了
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
你找工作的时候用AI吗?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务