【发布时间】:2023-03-16 22:07:01
【问题描述】:
我试图找到 BigInteger 的数字总和并找到了这段代码。
BigInteger big = BigInteger.valueOf(2).pow(1000);
String digits = big.toString();
int sum = 0;
for(int i = 0; i < digits.length(); i++) {
int digit = (int) (digits.charAt(i) - '0');
sum = sum + digit;
}
System.out.println(sum);
我不明白为什么- '0' 被添加到代码的第 6 行。
int digit = (int) (digits.charAt(i) - '0');
如果我删除那部分,它会给我一个错误的答案。
例如,没有- '0' 的 16 位总和给出 103 而不是 7。
那么,谁能解释一下代码中那部分的重要性?
感谢任何帮助。
【问题讨论】:
-
@azurefrog 谢谢!我明白了:)
-
顺便说一句,代码是低级的。最好使用
Character.getNumericValue()将 char '6' 转换为 int 6。 -
@OleV.V.是的,明白了。顺便说一句,“这是一个旁白”是什么意思?
-
我的意思是,您的问题是关于特定代码的,而我的评论不是,因此它无助于回答特定问题。认为无论如何它可能对某些人有用。
标签: java biginteger