⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 factorial3.java

📁 java 的164个例子的源代码,包括了 很多方面,供包括了19个方面的 源代码
💻 JAVA
字号:
/* * Copyright (c) 2000 David Flanagan.  All rights reserved. * This code is from the book Java Examples in a Nutshell, 2nd Edition. * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied. * You may study, use, and modify it for any non-commercial purpose. * You may distribute it non-commercially as long as you retain this notice. * For a commercial use license, or to purchase the book (recommended), * visit http://www.davidflanagan.com/javaexamples2. */package com.davidflanagan.examples.basics;/** * This class computes factorials and caches the results in a table for reuse. * 20! is as high as we can go using the long data type, so check the argument * passed and "throw an exception" if it is too big or too small. **/public class Factorial3 {    // Create an array to cache values 0! through 20!.    static long[] table = new long[21];    // A "static initializer": initialize the first value in the array    static { table[0] = 1; }  // factorial of 0 is 1.    // Remember the highest initialized value in the array    static int last = 0;    public static long factorial(int x) throws IllegalArgumentException {        // Check if x is too big or too small.  Throw an exception if so.        if (x >= table.length)   // ".length" returns length of any array            throw new IllegalArgumentException("Overflow; x is too large.");        if (x<0) throw new IllegalArgumentException("x must be non-negative.");        // Compute and cache any values that are not yet cached.        while(last < x) {            table[last + 1] = table[last] * (last + 1);            last++;        }        // Now return the cached factorial of x.        return table[x];    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -