返回信息流class factorialT{
static int factorial(int arg){
if(arg==0){ return 1; }else{ return arg*factorial(arg-1); }
}
public static void main(String[] args){
for(int i=1;i<=40;i++)
{
System.out.printf("%d ",i);
System.out.println(factorial(i));
}
}
}
谁给解释下结果为什么是这样,THX
1 1
2 2
3 6
4 24
5 120
6 720
7 5040
8 40320
9 362880
10 3628800
11 39916800
12 479001600
13 1932053504
14 1278945280
15 2004310016
16 2004189184
17 -288522240
18 -898433024
19 109641728
20 -2102132736
21 -1195114496
22 -522715136
23 862453760
24 -775946240
25 2076180480
26 -1853882368
27 1484783616
28 -1375731712
29 -1241513984
30 1409286144
31 738197504
32 -2147483648
33 -2147483648
34 0
35 0
36 0
37 0
38 0
39 0
40 0
这是一条镜像帖。来源:北邮人论坛 / java / #13591同步于 2010/3/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
问个问题
ps
2010/3/20镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 ps 的大作中提到: 】
: 溢出肯定是溢出嘛
: 他是怎么算的呢
: 32 -2147483648
: ...................
-2147483648 这个数进行递归后,发现低32位都是0,所以是0喽。有啥好解释的。