大数笔试总结
还是太嫩了
你对数之大还是没有概念啊
全部评论
所以可以,两个已经对1e9+7取余后的数相加后立即对1e9+7取余,就不会溢出了,不可以三个数相加再对1e9取余
点赞 回复 分享
发布于 2022-09-04 21:21 吉林
以后一律 变量都用long类型,反正sout输出时不会有任何影响
点赞 回复 分享
发布于 2022-09-04 21:16 吉林
先取余再相加,先取余再相乘,都不影响最后的结果
点赞 回复 分享
发布于 2022-09-04 21:17 吉林
但是先取余再比较大小,大小顺序就不一定对了,所以要先用long或者BigInteger 保存变量值,比较出大小之后,再取余
点赞 回复 分享
发布于 2022-09-04 21:18 吉林
1e9+7大于int,小于long,而long又小于BigInteger
点赞 回复 分享
发布于 2022-09-04 21:20 吉林
我真是个***,用不好long,还不如直接用BigInteger
点赞 回复 分享
发布于 2022-09-21 10:53 吉林
对于做乘法时可能超出int的范围(大概是2×10^9)时,只需要确保两个乘数中有一个是long类型的计科,结果一定也是long类型的,然后用一个long的变量保存即可
点赞 回复 分享
发布于 2022-09-21 10:57 吉林
对于做加法可能超出int的范围,注意 如果加数可能超出int的范围,那么加数一定要写成long的形式,要不然,还没等你相加呢,加数就首先爆了,具体的可以用一个long类型的变量来做加数,里面保存的是加数世纪的值,或者在普通的整数后面加上 后缀L标明它是一个long类型的数,它也会以long类型的加数形式参与加法运算,要不然就会爆出了。
点赞 回复 分享
发布于 2022-09-21 11:16 吉林
可以先取模,再相乘
点赞 回复 分享
发布于 2022-09-21 11:26 吉林
可以先取模,再相乘,注意:然后还要再取模一次
点赞 回复 分享
发布于 2022-09-21 11:26 吉林
同理,也可以先取模,再相加,注意:然后再取模
点赞 回复 分享
发布于 2022-09-21 11:27 吉林
草稿纸留大一点空隙, 别着急下结论,多往下推几步,比如n为5
点赞 回复 分享
发布于 2022-09-21 11:47 吉林
n小于4可能是一种规律,n大于等于4是另一种规律,有自己独自的起点和递增规律,这种一般是极其类似于动态规划,我称之为假性动态规划,不妨仔细的往下多推几步。方向错了,你再怎么解决这个方向上的问题和检查,也不可能得到正确答案,为什么一开始要这么才推了短短的几步就得出答案呢,不以物喜,不以己悲。乐极生悲
点赞 回复 分享
发布于 2022-09-21 13:49 吉林

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务