阶乘

//计算指定数据的阶乘。
import java.util.Scanner;
public class Factorial {
    public static void main(String[] args) {
        //向用户声明。
        System.out.println("仅支持0~20以内的整数的阶乘。\n输入数据:");
        //接收键盘数据。
        Scanner s=new Scanner(System.in);
        //if语句判断输入的内容,避免在内容不合法时程序无法运行。
        if(!(s.hasNextLong())) {
            System.out.println("数据不合法。");
            return;
        }
        //把键盘数据赋值给data。
        long data=s.nextLong();
        //调用方法。
        Factorial.function(data);
    }
    //运算方法。
    public static long function(long a) {
        //判断形参是否没有超出范围以决定是否结束。
        if(a>20 || a<0) {
            System.out.println("数据超出范围,结束运算。");
            //结束方法。
            return 0;
        }
        //当形参是特别的0时,直接输出0!=1。
        if(a==0) {
            Factorial.out(0,1);
            //结束方法。
            return 0;
        }
        //定义一个负责实时记录的变量与一个a的备份以免改变a。
        long now=1,b=a;
        //用for语句遍历每一个比形参小的非1正整数。
        for(;b!=1;b--){
            now=now*b;
        }
        //调用输出方法。
        Factorial.out(a,now);
        //结束方法。
        return 0;
    }
    //输出方法。
    public static void out(long a,long b) {
        System.out.println(a+"!="+b);
    }
}
上一篇:把函数视为对象


下一篇:基于 EASI 自适应盲分离的 I/Q 失衡补偿