编写java888,java计算8+88+888+8888+.....前十项之和,请问怎么更改这个X为整数型再去相加减啊,求问各位大佬!!!...

0a4c018dcfb0362565af570545138ae5.png

错误一:首先char类型无法用 Integer.parseInt( )转换。不管是parseInt( )还是valueOf( ) 里面都是放String 类型的数据。

错误二:char a=0;这是个错误写法。权且认为它是对的,往下看,

错误三:在你的方法中 a 的值没有变过。在第一层循环中 x 永远等于 a+'8' ,进入第二层循环十次,那就是 8+8+8+8+8+8+8+8+8+8,外层再循环十次。权且认为都没问题,那么结果可能只是800.

隐藏错误四:int类型取值范围是 -2147483648~2147483647 ,当第十次循环 8888888888(十个8)已经不再int取值范围内,会报错。

修改后的写法:

@Test

public void test() {

BigInteger sum = new BigInteger("0");

String x = "";

for (int i = 0; i 

x += '8';

// System.out.println(x);

sum = new BigInteger(x).add(sum);

}

System.out.println(sum);

}

追问

还在吗?我想问下在java的某个代码中求出了X,我怎么输出满足条件且最小的那个X呢?

追答

如果满足条件的数字有很多,是个数组,那么将数组排序,就可以输出最小的那个x了。

或者直接将满足条件的数字和上一个满足条件的做对比,保留最小的。当循环结束,你得到那个X就是最小的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值