Java中怎样用递归函数求20的阶乘?

Python011

Java中怎样用递归函数求20的阶乘?,第1张

public class DiGui {

public static void main(String[] args) {

DiGui d = new DiGui()

System.out.print(d.TT(20))

}

public double TT(int i)//写一个返回值为double 类型的方法,20的阶层值比较大int类型的值无法表示

{ //方法体比较简单

if(i <= 1)

{

return i

}

else

{

return i*TT(i-1)//方法自己调用自己呵呵。。。

}

}

}

int的范围是-2147483648   到2147483648

要是想精确计算,最好用BidDecimal

System.out.print("please input the number to compute(0~20)")

Scanner input = new Scanner(System.in)

int a = input.nextInt()

BigDecimal s = new BigDecimal(1)

if ((a < 0) || (a > 20)) {

System.out.println("input errors")

} else if (a > 0) {

for (int i = 1 i <= a i++) {

s = s.multiply(new BigDecimal(i))

}

System.out.println(s)

} else {

System.out.print("1")

}

for的嵌套循环的:

public class Practice5 {

public static void main(String[] args) {

long sum = 0, c

for (int i = 1 i <= 20 i++) {

c = 1

for (int b = 1 b <= i b++) {

c *= b

}

sum += c

}

System.out.println("1到20的阶乘和等于" + sum)

}

}

单个for循环的:

public class Practice5 {

public static void main(String[] args) {

long sum = 0, c = 1

for (int i = 1 i <= 20 i++) {

c *= i

sum += c

}

System.out.println("1到20的阶乘和等于" + sum)

}

}