我找书上敲了段求50!的代码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;
}}我想了想把它改成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"
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;
}}我想了想把它改成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"
i+""是i弄成string的形式
也可以用String.valueOf(i)
i+"" = "2" //字符串2
"i" = ”i“ //字符串i