错误一:首先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就是最小的。