JAVA初学者,请教高手帮忙解决个问题!
1^1+2^2+3^3+4^4+5^5+……+20^20=?,用JAVA编程实现,要求是只能用字符串或者数组进行数的操作,然后计算出结果(算是用数组操作大数的一类的题吧)...
1^1+2^2+3^3+4^4+5^5+……+20^20=?,用JAVA编程实现,要求是只能用字符串或者数组进行数的操作,然后计算出结果(算是用数组操作大数的一类的题吧).
我的想法是,如要用一个数组存储20^20这个数,先定义一个长度为30的数组a[29](我是学C++的),然后对20^20这个数逐位除以10^i(i=0;i<=20;i++)取整存储到数组中,可是实现起来却是漏洞百出,程序对了结果不对,可能是考虑不周,忙活了大半天了.请哪位JAVA比较好的给点主意帮帮忙,最好是能给出这个题的全部程序,调试过而且结果正确的,鄙人双手奉上30分!!先在此谢过啦!!!
打错了,上面i<=29 ;还有20^20除以10^i后,结果再%10取余,也就是把一个大数每一位的值存储到数组中,最后用数组遍历显示结果.
顺便提一句,20^20已经超出了long型所能表示的范围 展开
我的想法是,如要用一个数组存储20^20这个数,先定义一个长度为30的数组a[29](我是学C++的),然后对20^20这个数逐位除以10^i(i=0;i<=20;i++)取整存储到数组中,可是实现起来却是漏洞百出,程序对了结果不对,可能是考虑不周,忙活了大半天了.请哪位JAVA比较好的给点主意帮帮忙,最好是能给出这个题的全部程序,调试过而且结果正确的,鄙人双手奉上30分!!先在此谢过啦!!!
打错了,上面i<=29 ;还有20^20除以10^i后,结果再%10取余,也就是把一个大数每一位的值存储到数组中,最后用数组遍历显示结果.
顺便提一句,20^20已经超出了long型所能表示的范围 展开
4个回答
展开全部
import java.math.*;
public class Tester {
public static void main(String [] args) {
int len = 20;
BigInteger bs = new BigInteger("0");
for(int i = 0; i < len; i ++) {
BigInteger bi = new BigInteger(1 + i + "");
bs = bs.add(bi.pow(bi.intValue()));
}
System.out.println(bs);
}
}
public class Tester {
public static void main(String [] args) {
int len = 20;
BigInteger bs = new BigInteger("0");
for(int i = 0; i < len; i ++) {
BigInteger bi = new BigInteger(1 + i + "");
bs = bs.add(bi.pow(bi.intValue()));
}
System.out.println(bs);
}
}
展开全部
import java.math.*;
public class Tester {
int len = 20;
public void Tester{
BigInteger bs = new BigInteger("0");
for(int i = 0; i < len; i ++) {
BigInteger bi = new BigInteger(1 + i + "");
bs = bs.add(bi.pow(bi.intValue()));
}
System.out.println(bs);
}
}
public static void main(String [] args) {
Tester w1 = new Tester();
}
}
public class Tester {
int len = 20;
public void Tester{
BigInteger bs = new BigInteger("0");
for(int i = 0; i < len; i ++) {
BigInteger bi = new BigInteger(1 + i + "");
bs = bs.add(bi.pow(bi.intValue()));
}
System.out.println(bs);
}
}
public static void main(String [] args) {
Tester w1 = new Tester();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
long sum =0;
for(int i = 1;i<21;i++){
sum = sum + i * i;
}
for(int i = 1;i<21;i++){
sum = sum + i * i;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class fun{
int x;
int m=1;
int fun1(){
for(int i=0;i<x;i++)
m=m*x;
return m;
}
public static void main(String args[]){
int a[]=new int[29];
for(int j=0;j<20;j++){
int d=fun();
a[i]=d.x;
}
for(int k=0;k<20;k++)
sum=sum+a[k];
System.out.println("sum="+sum);
}
}
大概是这个样的吧! 我没有去调试 直接这样写 的
很晚了 累!!
你自己去调试下! 如果有不对的地方自己去试试,才更有体会!
int x;
int m=1;
int fun1(){
for(int i=0;i<x;i++)
m=m*x;
return m;
}
public static void main(String args[]){
int a[]=new int[29];
for(int j=0;j<20;j++){
int d=fun();
a[i]=d.x;
}
for(int k=0;k<20;k++)
sum=sum+a[k];
System.out.println("sum="+sum);
}
}
大概是这个样的吧! 我没有去调试 直接这样写 的
很晚了 累!!
你自己去调试下! 如果有不对的地方自己去试试,才更有体会!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询