为何运行结果是0呢? int 的范围有多大-2的31次方到2的31次方减1,最大值就21亿多点按100亿算吧10000000000=100的5次方那你知道199的阶乘有多大,远大于100的99次方两个根本就不是一个数量级的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你写的是不是阶乘?要知道long类型的范围是int个数的平方,但它只能容纳21!你用int算199的阶乘当然......double的范围较大,但是相对于int/long对于整数一一映射的优点,double显然精度太差了我曾经看到过一个用String的方法求大数的阶乘,绝对是个好创意! import java.io.*;public class test{static double result=1;public double p(int n){ if ((n==1)||(n==0)) return 1; else { result=n*p(n-1); return result; }}public static void main(String args[]){ test t=new test(); System.out.println(t.p(199));}}没法求我想用String下次给程序 可以考虑用 java.math.BigInteger java.util.Properties propertyNames方法 为什么我的java文件不了 急急急 关于super的问题???? 哪位高手来帮我看看好吗? Java Web Start如何下载多个包的问题!(急急急) 如何在windows me中配置java环境 在applet中如何弹出对话框 请问String.equals()和String.equalsIgnoreCase()有什么区别啊? protected 与 package 的存取权限怎么在我看来是一样的? 编译出错,看看你知不知道是什么错误 有几个问题没有明白,请大家指点一下
要知道long类型的范围是int个数的平方,但它只能容纳21!
你用int算199的阶乘当然......double的范围较大,但是相对于int/long对于整数一一映射的优点,double显然精度太差了我曾经看到过一个用String的方法求大数的阶乘,绝对是个好创意!
public class test
{
static double result=1;
public double p(int n)
{ if ((n==1)||(n==0))
return 1;
else
{
result=n*p(n-1);
return result;
}
}
public static void main(String args[])
{
test t=new test();
System.out.println(t.p(199));
}
}
没法求
我想用String
下次给程序