如何用简单的非递归循环编写Ackermann function?简单循环Ackermann函数
4
A
回答
2
这里是一个可能的实现:
import java.util.ArrayList;
public class LinearAckermann {
static ArrayList<Long> mList = new ArrayList<Long>();
public static long ackermann(long m, long n) {
while (true) {
if (m == 0) {
n += 1;
if (mList.isEmpty()) {
return n;
} else {
int index = mList.size() - 1;
m = mList.get(index);
mList.remove(index);
}
} else if (n == 0) {
m -= 1;
n = 1;
} else {
mList.add(m - 1);
n -= 1;
}
}
}
public static void main(String[] args) {
System.out.println(ackermann(4, 1));
}
}
它采用mList
,而不是一个堆栈持有待审批工作;当堆栈变空时,它可以返回累计值。
相关问题
- 1. Ackermann函数和递归
- 2. haskell - hyperoperation(ackermann)函数,tetration
- 3. 简单WHILE循环
- 4. jQuery简单循环
- 5. C#循环单向函数
- 6. 简单的游戏循环不循环?
- 7. perl foreach循环数组,简单问题
- 8. datastage中的简单循环
- 9. JMeter简单嵌套循环
- 10. 简单的循环输出
- 11. 简单的JavaScript循环+ jQuery
- 12. 简单循环查询
- 13. 简单的foreach循环
- 14. JavaScript简单的循环
- 15. Python - 虽然循环简单
- 16. 简单的循环编程
- 17. 简单的JavaScript循环
- 18. 简单的循环长度
- 19. 如何修复简单C++函数中的无限循环?
- 20. 循环函数bash
- 21. 循环jQuery函数
- 22. SQL /函数循环
- 23. sql循环函数
- 24. 循环迭代函数x次循环
- 25. AngularJs中的循环复杂性如果循环很简单
- 26. 将简单的for循环转换为while循环?
- 27. Jquery模板中的简单循环/循环
- 28. Python简单的嵌套循环
- 29. C++简单循环缓冲区队列
- 30. 递归或简单的PHP循环
这是什么样的作业? – 2011-04-09 13:19:46
@亨克:不是作业,只是对简单循环的表现力感到好奇。 – banx 2011-04-09 13:25:03