首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

BigInteger求50!的困惑解决方法

2012-03-25 
BigInteger求50!的困惑我找书上敲了段求50!的代码Java codepackage ex14import java.math.*public class

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

热点排行