如何在不使用递归或Java循环的情况下找到阶乘? [英] How to find factorial without using Recursion or loop in java?

查看:71
本文介绍了如何在不使用递归或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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆