如何在不使用递归或Java循环的情况下找到阶乘? [英] How to find factorial without using Recursion or loop in java?
本文介绍了如何在不使用递归或Java循环的情况下找到阶乘?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在不使用循环或递归的情况下在Java中找到阶乘?因此,如果有任何办法,请帮助.谢谢
I need to find the factorial in java without using loop or recursion ? So if there is any way then please help . Thanks
推荐答案
有点不切实际,但在任何地方都没有明确的循环.
Slightly impractical but no explicit loop anywhere.
import javax.swing.Timer;
import java.awt.event.*;
import java.util.concurrent.ArrayBlockingQueue;
public class Fac {
public static int fac(final int _n) {
final ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(1);
final Timer timer = new Timer(0, null);
timer.addActionListener(new ActionListener() {
int result = 1;
int n = _n;
public void actionPerformed(ActionEvent e) {
result *= n;
n--;
if(n == 0) {
try {
queue.put(result);
} catch(Exception ex) {
}
timer.stop();
}
}
});
timer.start();
int result = 0;
try {
result = queue.take();
} catch(Exception ex) {
}
return result;
}
public static void main(String[] args) {
System.out.println(fac(10));
}
}
这篇关于如何在不使用递归或Java循环的情况下找到阶乘?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文