当前位置: 技术问答>java相关
急: 寻可以求大数的阶乘java算法!
来源: 互联网 发布时间:2015-04-12
本文导语: 急: 寻可以求大数的阶乘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 W...
急: 寻可以求大数的阶乘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;
// Import some other classes we'll use in this example.
// Once we import a class, we don't have to type its full name.
import java.math.BigInteger; // Import BigInteger from java.math package
import java.util.*; // Import all classes (including ArrayList) from java.util
/**
* This version of the program uses arbitrary precision integers, so it does
* not have an upper-bound on the values it can compute. It uses an ArrayList
* object to cache computed values instead of a fixed-size array. An ArrayList
* is like an array, but can grow to any size. The factorial() method is
* declared "synchronized" so that it can be safely used in multi-threaded
* programs. Look up java.math.BigInteger and java.util.ArrayList while
* studying this class. Prior to Java 1.2, use Vector instead of ArrayList
**/
public class Factorial4 {
protected static ArrayList table = new ArrayList(); // create cache
static { // Initialize the first element of the cache with !0 = 1.
table.add(BigInteger.valueOf(1));
}
/** The factorial() method, using BigIntegers cached in a ArrayList */
public static synchronized BigInteger factorial(int x) {
if (x
* 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;
// Import some other classes we'll use in this example.
// Once we import a class, we don't have to type its full name.
import java.math.BigInteger; // Import BigInteger from java.math package
import java.util.*; // Import all classes (including ArrayList) from java.util
/**
* This version of the program uses arbitrary precision integers, so it does
* not have an upper-bound on the values it can compute. It uses an ArrayList
* object to cache computed values instead of a fixed-size array. An ArrayList
* is like an array, but can grow to any size. The factorial() method is
* declared "synchronized" so that it can be safely used in multi-threaded
* programs. Look up java.math.BigInteger and java.util.ArrayList while
* studying this class. Prior to Java 1.2, use Vector instead of ArrayList
**/
public class Factorial4 {
protected static ArrayList table = new ArrayList(); // create cache
static { // Initialize the first element of the cache with !0 = 1.
table.add(BigInteger.valueOf(1));
}
/** The factorial() method, using BigIntegers cached in a ArrayList */
public static synchronized BigInteger factorial(int x) {
if (x
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。