当前位置: 代码迷 >> Java相关 >> [求助]for循环计算8+88+888+8888+……的前100项的和的思路
  详细解决方案

[求助]for循环计算8+88+888+8888+……的前100项的和的思路

热度:694   发布时间:2007-03-21 17:38:16.0
[求助]for循环计算8+88+888+8888+……的前100项的和的思路
如题应该如何考虑这类数字很大的题目呢?刚学。。。
搜索更多相关的解决方案: 思路  

----------------解决方案--------------------------------------------------------

对与这种用long不能表示的大整数,可以考虑java里面的BigInteger类,它可以表示任意大的整数.
代码如下:

程序代码:

import java.math.BigInteger;

public class Sum{
public static BigInteger sum(int n){
BigInteger bi =BigInteger.ZERO;
StringBuilder sb =new StringBuilder();
for(int i=0;i<n;i++){
sb.append('8');
bi =bi.add(new BigInteger(sb.toString()));
}
return bi;
}
public static void main(String[] args){
System.out.println(sum(100));
}
}



----------------解决方案--------------------------------------------------------
好心的人
----------------解决方案--------------------------------------------------------
BigInteger 学到一招,谢谢,不过疑问的是,BigInteger真的是任意大么?
----------------解决方案--------------------------------------------------------
应该是任意大,这是100个,哪怕一万位也无所谓啊
----------------解决方案--------------------------------------------------------
呵呵,只要你电脑的RAM足够大.
----------------解决方案--------------------------------------------------------
受教了。。。
----------------解决方案--------------------------------------------------------