数字越界了!
要知道long型的变量只能储存20!,你用普通计算器算一下就知道阶乘大的有多可怕了
你竟然想用int 储存10000!
另外阶乘的函数可以用递归写,
要知道long型的变量只能储存20!,你用普通计算器算一下就知道阶乘大的有多可怕了
你竟然想用int 储存10000!
另外阶乘的函数可以用递归写,
解决方案 »
- 为什么socket[i].getOutputStream()这样是错的呢?
- 为什么HashMap源码如此定义常量
- [请教达人]用AWT写的源码,在此基础上用能SWT继续开发吗
- 请高手帮帮忙,本人有一个Jdbc连接Sqlserver2005的问题
- 在java程序过程中如何执行EXE文件,例如运行过程中调用windows下的计算器calc.exe?
- 我要把上传的图片自动命名,如2004030812:34:05~1000.jpg就是精确到嚎秒级,如何做到,我看了j2sdk,getYear()之类是过期了的
- 急!!请求高手门帮忙~!~一道java程序题(在线等解)
- 在有Applet和Servlet互传对象的程序中如何共用包的问题。
- 一个 java.io.NotSerializableException的问题。
- java可以对一张图整体颜色加深?有没有大神知道呢?
- 哪有java的反编译器下?
- 请问有没有JVM方面的书啊?
号称比任何一个其他double都接近e
import java.applet.Applet;
import java.awt.*;
public class ZiRanShue extends Applet
{
int JieCheng(int i)
{
int j,result=1;
for(j=1;j<=i;j++)
{
result*=j;
}
return result;
}
public void paint(Graphics g)
{
int i;
double e=0.0000;
while(e<10000.0000) //加了while语句来控制e小于10000{
for(i=1;;i++)
{
e+=1/JieCheng(i);
}
}
g.drawString("自然数e误差小于0.0001的近似值是:"+e,10,20);
}
}还是不行编译的时候没有问题,用AppletViewer查看时又出现问题:---------- AppletViewer ----------
java.lang.ArithmeticException: / by zero
at ZiRanShue.paint(ZiRanShue.java:23)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
at java.awt.Component.dispatchEventImpl(Component.java:3587)
at java.awt.Container.dispatchEventImpl(Container.java:1582)
at java.awt.Component.dispatchEvent(Component.java:3368)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:191)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
Normal Termination
输出完成 (耗费 10 秒)。
int j,result=1;
for(j=1;j<=i;j++)
{
result*=j;
}
中的result,不是e,
int的最大值2147483647,而20!就已经2432902008176640000了,21!连long型都不够放了
{
for(j=1;j<=i;j++)
{
result*=j;
}
}我有添加了一个while 语句用来控制使result小于10000,AppletViewer可以打开,没有任何提示错误,但是页面上什么都没有啊!