我有问题如何编写计算以下过程的程序
我有一个返回 x^n 的指数程序,这里是代码
public class Exp{
public static long exp(long x,long n){
long t=0;
if (n==0){
t= 1;
}
else{
if (n %2==0){
t= exp(x,n/2)* exp(x,n/2);
}
else{
t= x*exp(x,n-1);
}
}
return t;
}
public static void main(String[]args){
long x=5L;
long n=4L;
System.out.println(exp(x,n));
}
}
但如何在 Tetration 程序中使用它?请帮忙
最佳答案
Tetration x ↑↑ n can be defined recursively作为
x ↑↑ n = x ^ (x ↑↑ (n-1))
所以你可以这样写
long tetration(long x, long n) {
if (n == 0)
return 1;
else
return exp(x, tetration(x, n-1));
}
但请注意,四次方增长非常快,long
甚至不足以存储 4 ↑↑ 3 (= 1.3 × 10154)。也许你需要一个 BigInteger .
(顺便说一句,exp
通常指的是一元函数ex,二元函数xy 通常称为 pow
。)
关于java - 关于 Tetration 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2935312/