读书人

BigInteger求50!的困惑解决方法

发布时间: 2012-03-25 20:55:17 作者: rapoo

BigInteger求50!的困惑
我找书上敲了段求50!的代码

Java code
package ex14;import java.math.*;public class LargeFactorial {    public static void main(String[] args) {        // TODO 自动生成方法存根        System.out.println("50! is\n"+factorial(50));    }        public static BigInteger factorial(long n){        BigInteger result=BigInteger.ONE;        for(int i=1;i<=n;i++)            result=result.multiply(new BigInteger(i+""));//这里的i+""不是很理解                return result;    }}

我想了想把它改成
Java code
package ex14;import java.math.*;public class LargeFactorial {    public static void main(String[] args) {        // TODO 自动生成方法存根        System.out.println("50! is\n"+factorial(50));    }        public static BigInteger factorial(long n){        BigInteger result=BigInteger.ONE;        for(int i=1;i<=n;i++)            result=result.multiply(new BigInteger("i"));                return result;    }}

就无法运行了,我想不明白为什么要写成i+""而不是"i"

[解决办法]
BigInteger没有参数为int的构造方法,有string的
i+""是i弄成string的形式
也可以用String.valueOf(i)
[解决办法]
如果i = 2
i+"" = "2" //字符串2
"i" = ”i“ //字符串i

读书人网 >J2SE开发

热点推荐