![]() |
1
27
如果你只看最后四位数,你不需要任何大于整数的东西。考虑一下: 当两个数字相乘时,如果您只对最低有效数字(即最后四个数字)感兴趣,则 最上面的数字无效 在结果的最低位数上…所以你可以 扔掉 “最重要(右侧)数字 在你繁殖之前 . 例如:我想把两个大数字相乘,但我只需要最后两个数字:
但如果我们只把最后两位数相乘…
89*21=1869(后两位数字仍为“ 六十九 “但是我们 没有溢出 ) 我用了这个方法 计算 Six Right-Most Digits of 1,000,000 factorial . 享受, 罗伯特·C·卡塔诺 |
![]() |
2
7
.NET 4.0 有一个 BigInteger 班 |
![]() |
4
1
你可以这样修改你的代码:
这是因为(10000*K+L)的最后四位数字 R与L相同 R.产品的实际类型取决于您要处理的N的范围。如果它都是整数类型,那么产品应该是长的。 顺便问一下,如果总是1,为什么要将产品作为参数传递? |
![]() |
5
0
试着用double或long代替int来表示产品怎么样?它只在某些情况下起作用,但是它可以让你处理更多你能处理的数字。 |
![]() |
6
0
我希望我没有理解错,但是如果结果为0,您想在控制台“0000”中写入内容吗? 你试过了吗?
? 如果你想要的是把0000作为一个整数,我很抱歉,但不知道如何得到它。 |
![]() |
7
0
如果现在不能转到.NET 4.0,可以使用C_的J库中的BigInteger。 Here's an article describing how . 它确实会影响部署,因为您需要部署 J# re-distributable . |
![]() |
zadspecial · 为什么大人物们不加入呢? 7 年前 |
|
user3596335 · 如何计算大整数以N为底的对数? 7 年前 |
|
Ras · 如何将解密后的BigInteger转换回字符串? 7 年前 |