我最近完成了一个编程挑战,挑战我们获得2015的阶乘。在计算阶乘之后,您将总和中的所有数字(在本例中为BigInteger)进行求和。因子编程挑战混淆
完成后,我取得的结果是:23517
然而,当我提交给了教授他说正确的结果是:26532
我似乎无法找到问题根本。我已经交叉检查了多个来源,到目前为止,一切都似乎表明我是对的。任何人都可以找到我的代码出错的地方?
import java.math.BigInteger;
class toymeister {
public static void main(String[] args){
System.out.println("The sum is: " + SumOf(FactorialOf(2015)));
}
public static BigInteger FactorialOf(int x){
BigInteger Answer, intConvert;
intConvert = new BigInteger("0");
Answer = new BigInteger("1");
for(int i=1; i<=x;i++){
intConvert = intConvert.valueOf(i);
Answer = Answer.multiply(intConvert);
}
System.out.println("The Factorial Of " + x + " is: " + Answer);
return Answer;
}
public static BigInteger SumOf(BigInteger y){
BigInteger Sum = new BigInteger("0");
while(y.compareTo(BigInteger.ZERO) > 0) {
Sum = Sum.add(y.mod(BigInteger.TEN));
y = y.divide(BigInteger.TEN);
}
return Sum;
}
}
首先,请按[Java命名约定(http://www.oracle.com/technetwork /java/codeconventions-135099.html):变量名称应该以小写字母开头... – Frakcool
http://www.wolframalpha.com/input/?i=digitsum%28fact%282015%29%29因此23517是正确的 – 2015-11-19 18:27:35
打开你的调试器朋友。 – csmckelvey