gpt4 book ai didi

java - 如何以非递归方式重写 Ackermann 函数?

转载 作者:太空狗 更新时间:2023-10-29 22:53:44 24 4
gpt4 key购买 nike

我有功能

public static int func(int M,int N){
if(M == 0 || N == 0) return M+N+1;
return func(M-1, func(M, N-1));
}

如何以非递归方式重写它?也许,它是某种算法的实现?

最佳答案

不完全是 O(1),但绝对是非递归的。

public static int itFunc(int m, int n){
Stack<Integer> s = new Stack<Integer>;
s.add(m);
while(!s.isEmpty()){
m=s.pop();
if(m==0||n==0)
n+=m+1;
else{
s.add(--m);
s.add(++m);
n--;
}
}
return n;
}

关于java - 如何以非递归方式重写 Ackermann 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com