我初学Java,写了个算法求2+4+8+16+...加到2的一百次方,不知道哪错了,请高手指教。public class Test9 {
public static void mian(String args[]){
int a,sum=0,result=1;
for(a=0;a<100;a++){
result*=2;
sum+=result;
}
System.out.println("答案是"+sum);
}}
java算法2+4+8+16+......2的一百次方,我写的哪错了?
答案:5 悬赏:0 手机版
解决时间 2021-03-02 03:30
- 提问者网友:凉末
- 2021-03-01 10:24
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-03-01 11:02
public class Test9 {
public static void main(String args[]){ // 不是mian
int a;
double result = 1, sum = 0; // 改用double吧,int存不了那么大的值,溢出了
for(a=0;a<100;a++){
result*=2;
sum+=result;
}
System.out.println("答案是"+sum);
}
}
public static void main(String args[]){ // 不是mian
int a;
double result = 1, sum = 0; // 改用double吧,int存不了那么大的值,溢出了
for(a=0;a<100;a++){
result*=2;
sum+=result;
}
System.out.println("答案是"+sum);
}
}
全部回答
- 1楼网友:独钓一江月
- 2021-03-01 14:45
int 类型范围太小了,改个范围大点的。
- 2楼网友:酒醒三更
- 2021-03-01 13:44
首先大哥你的 main 写错了,其次你2的100次幂,就算是long也不能打印出来的,打印出来的结果也是大相径庭的
- 3楼网友:西岸风
- 2021-03-01 12:33
public class test { public static void main(string args[]){//main方法名字错了
int a; double sum=0; for(int b=1;b<100;b++){//累计循环 double result=1; for(a=0;a<b+1;a++){//2的n次方循环 result*=2; } sum+=result; } system.out.println("答案是"+sum); }
}
- 4楼网友:持酒劝斜阳
- 2021-03-01 12:00
算出来数值太大了!算法没错,数据类型不对!用了 double 结果为 答案是2.5353012004564588E30 你把100改为 50以内就可以看到算出的结果了! public class Test9 {
public static void main(String[] args) {
int a;
double sum=0,result=1;
for(a=0;a<100;a++)
{
result*=2; sum+=result;
}
System.out.println("答案是"+sum);
}}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯