JAVA编程,分全拿出来了,编程计算1^1+2^2+3^3+4^4+5^5+……+20^20

请大家注意越界问题的,应该20的20次方很大

第1个回答  2009-03-26
public class BigCal {
public static void main(String[] args) {
double sum = 0.0d;
for(int i=1;i<=20;i++){
sum += Math.pow(i, i);
}
System.out.println(sum);
}
}

//使用double的基本类型变量可以把数值结果表示成指数形式
//double类型最大正有限值为 (2-2^(-52))·2^1023
//所以20^20还远远不会越界

//最后得到的结果是:1.0687621220005955E26

//也就是:1.0687621220005955*10^26
第2个回答  2009-03-20
//随便你求几个啊 呵呵

import java.math.*;

public class BigIntNum {

public static void main(String[] args) {
BigIntNum bm = new BigIntNum();
System.out.println(bm.sum(20));
}

public BigInteger sum(int len){
BigInteger bi = new BigInteger("0");
for(int i = 1; i <= len; i ++) {
bi = bi.add(pow(i));
}
return bi;
}

public BigInteger pow(int i) {
BigInteger bi = new BigInteger(i + "");
return bi.pow(i);
}

}本回答被网友采纳
第3个回答  2019-09-30
虽然很久了,但还是要发一下

贴主发的是n的n次方的和,不是平方

System.out.println(1 + 2 * 2 + 3 * 3 * 3 + 4 * 4 * 4 * 4 + 5 * 5 * 5 * 5 * 5 + 6 * 6 * 6 * 6 * 6 * 6);

是50069

自己可以验证一下

已发博文博文:https://blog.csdn.net/weimingjue/article/details/101760480
第4个回答  2009-03-20
答案是 0

嘻嘻~~~楼上的几位大哥编程都很不错噢,不过却忽略了一个小小的问题,因为两个相同的数字按位异或的结果就是0,所以这个题目的答案就是0,不用弄循环啦,哈哈~~~让我捡便宜咯~~~呵呵
第5个回答  2009-03-22
import java.math.BigDecimal;

public class BigDecimalTest {

public static BigDecimal function(int index) {
BigDecimal num = new BigDecimal(index);
return num.pow(index);
}

public static void main(String[] args) {

BigDecimal result = new BigDecimal(0);
for (int i = 1; i <= 20; i++) {
result = result.add(function(i));
}

System.out.println("1的1次方+2的2次方+3的3次方+4的4次方....+20的20次方的结果为:"+result.toPlainString());
}
}

楼上的朋友们好像都把题目看错了啊,不是2*2,而是2的2次方,这个分数我就收下啦!!!请放心吧,答案是正确的,我已经测试过了
相似回答