int n = Integer.valueOf(JOptionPane.showInputDialog(this, "3")).intValue(); long result = 1; for (int i = 1; i <= n; i++) { result *= i; } System.out.println(result);当n<=0的情况没有考虑,因为我不记得在数学中是怎么定义的了。
public int factorial(int max) { int result=1; for(int i=1;i<max;i++) { resulst*=i; } return result; }
应该使用BigInteger BigInteger result = BigInteger.valueOf(1); for(int i = 2; i <= max; i++) { result = result.mulitply(BigInteger.valueOf(i)); }
public class aaa { public static void main(String[] args){ BigInteger bi = BigInteger.valueOf(100); for(int i=bi.intValue()-1;i>0;i--){ bi = bi.multiply(BigInteger.valueOf(i)); } System.out.println(bi.toString());//这里要用toString()方法打印,结果就是你想要的,但是不是科学计数法,结果超长的 }}
long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
System.out.println(result);当n<=0的情况没有考虑,因为我不记得在数学中是怎么定义的了。
{
int result=1; for(int i=1;i<max;i++)
{
resulst*=i;
} return result;
}
BigInteger result = BigInteger.valueOf(1);
for(int i = 2; i <= max; i++) {
result = result.mulitply(BigInteger.valueOf(i));
}
大家没有看出来?
void f(int n)
{
if(n==1)
return 1;
else
return n*f(n-1);
}
大家可以对他优化一下。
public static void main(String[] args){
BigInteger bi = BigInteger.valueOf(100);
for(int i=bi.intValue()-1;i>0;i--){
bi = bi.multiply(BigInteger.valueOf(i));
}
System.out.println(bi.toString());//这里要用toString()方法打印,结果就是你想要的,但是不是科学计数法,结果超长的
}}