如何用簡單的非遞歸循環編寫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. 函數中的Python簡單循環
- 2. Ackermann函數和遞歸
- 3. haskell - hyperoperation(ackermann)函數,tetration
- 4. Perl簡單循環
- 5. 簡單WHILE循環
- 6. Matlab簡單循環
- 7. jQuery簡單循環
- 8. 簡單循環JQuery
- 9. C#循環單向函數
- 10. 簡單的遊戲循環不循環?
- 11. 函數式編程 - 簡單循環遞增計數器
- 12. PHP簡單For循環只有循環今天的日期與時間函數
- 13. 問:簡單循環追蹤
- 14. 簡單循環卡住
- 15. 簡單的循環長度
- 16. JavaScript簡單的循環
- 17. 簡單循環太慢
- 18. Java簡單的for循環
- 19. Python - 雖然循環簡單
- 20. xslt中的簡單循環
- 21. 簡單循環陣列
- 22. JMeter簡單嵌套循環
- 23. Python:簡單while循環
- 24. 無限循環簡單mips
- 25. 簡單的循環編程
- 26. 簡單的JavaScript循環+ jQuery
- 27. 簡單循環查詢
- 28. datastage中的簡單循環
- 29. 簡單的JavaScript循環
- 30. 簡單For循環問題
這是什麼樣的作業? – 2011-04-09 13:19:46
@亨克:不是作業,只是對簡單循環的表現力感到好奇。 – banx 2011-04-09 13:25:03