java - 对从 1 到 n 的值求和一系列 n^n 且没有溢出?只需要答案的最后一位数字
问题描述
我想编写一个 Java 程序,对从 1 到 n 的所有整数 n^n 求和。我只需要这个数字的最后 10 位数字,但给定的 n 值超过 800。
我已经编写了一个基本的 java 程序来计算它,它适用于 n < 16。但它显然不能处理这么大的数字。我想知道是否有一种方法可以只收集一个通常会溢出很长的数字的最后 10 位数字,如果是这样,那么该方法或技术可能是什么。
我没有要显示的代码,只是因为我编写的代码正是您所期望的。一个在 i<=n 时运行 i*i 的 for 循环和一个将每次迭代与之前的迭代相加的计数器。有用。我只是不知道如何解决更大数字的问题,需要指导。
在 n=16 左右,数字溢出一个 long,并返回负值。BigInteger 会对此有所帮助,还是数据类型仍然太小?或者有人可以向我指出一种收集大量数字的最后 10 位数字的技术吗?我可以将它存储在一个数组中,然后将它们总结起来,如果我能做到那么远的话。
无论如何,我不希望有一个完整的代码,但也许有一些关于我如何重新看待这个问题的建议?我的 n00b 自我缺少一些技术?
谢谢!
解决方案
推荐阅读
- c# - 如何使网站和 xamarin 项目使用相同的数据库
- r - dplyr中字符串的新列
- perl - 如何以 diff 命令返回的格式获取 perl 中文件的最后修改时间?
- javascript - 有没有办法在 swagger-ui 3.* 中仅呈现特定的 api 端点?
- python - 根据父子条件过滤熊猫数据框
- actions-on-google - 为什么我不能在手机上与我的项目谷歌助手通话
- android - unity版本升级后unity导出不支持android
- python - 对最后一个空格后的 grep 输出数值进行排序
- angular - 在primeng表中显示换行符中的数组拆分
- python - 这行代码是否创建了 Card 类的新实例?