import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.math.BigInteger;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author corywu
*/
public class Factorial {
public static double factorial(int num) {
if (num == 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
public static void main(String args[]) {
FileOutputStream fos = null;
try {
System.out.println(factorial(10));
BigInteger x = BigInteger.valueOf(1);
for (int i = 2; i <= 100000; i++) {
x = x.multiply(BigInteger.valueOf(i));
}
fos = new FileOutputStream("c:\\abc.txt");
OutputStreamWriter opsw = new OutputStreamWriter(fos);
try {
opsw.write(x.toString());
opsw.flush();
} catch (IOException ex) {
ex.printStackTrace();
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} finally {
try {
fos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
分享到:
相关推荐
本项目提供了一系列源代码(Factorial2.cpp、Factorial1.cpp、Factorial3.cpp)和相关文件,用于实现支持大于100000的阶乘计算。下面我们将详细探讨大数阶乘算法及其实现。 首先,我们需要理解阶乘的概念。一个正...
阶乘计算器是一个程序,用于计算任意正整数的阶乘。在数学中,n的阶乘表示为n!,是所有小于及等于n的正整数的乘积。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。这个计算器特别强调能够快速处理大数计算,比如能有效...
可以计算大数的阶乘,并保存到指定文件。
这个方法首先检查输入值是否有效,然后初始化一个长度为100000的无符号整型数组`array`,用于存储阶乘的结果。 #### 计算阶乘的算法逻辑 算法的核心在于循环遍历从2到n的每一个数,将当前累积的阶乘结果(存储在...
### 高精度计算1000阶乘 #### 背景介绍 在数学和计算机科学领域中,阶乘是一个非常重要的概念。阶乘是指所有小于及等于该数的正整数的乘积,通常表示为n!。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。当计算较大的...
标题中的“效率很高的大数阶乘程序”指的是一个能够快速计算大整数阶乘的算法实现。在描述中提到,这个程序能够在不到一秒钟的时间内计算出9999的阶乘,并且能够处理整数范围内(即int类型)的阶乘计算。这暗示了...
4. **jNum**:一个长度为100000的数组,用于存放计算过程中产生的大数。 5. **temp**:临时变量。 6. **aNum**:用于记录当前已经处理过的数字个数。 7. **carry**:进位标志,用于处理乘法过程中的进位情况。 ####...
这是一个计算阶乘的程序,分为初级(1.0,1.1,1.2)、中级(2.0)、高级(3.0), mini, 3种算法,共计7个版本,1.x版本提供源代码和可执行文件,2.0 和3.0 版本仅仅提供执行文件。 mini 版为最新添加的版本,分dos版和...
10000! 大概是700ms多点,不包括输出 100000!大概60s少点,不包括输出
该程序的主要目的是计算100000的阶乘。阶乘是指所有小于及等于该数的正整数的乘积,通常表示为n!。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。 #### 二、程序结构与功能分析 1. **文件操作**:程序首先定义了一个...
计算效率非常高!钦佩!计算100000的阶乘也只用了零点几秒!还可以计算双阶乘!
enum{ BASE_DATA = 10000, MAX_NUM = 100000 , MAX_SIZE = MAX_NUM+1000};struct MulOpt {Type data1;MulOpt(Type x):data1(x){}inline Type operator()(Type y){return data1*y;}};struct ConverData{in
4. **溢出检测**: 如果计算的结果超出了预先设定的最大数组长度(N = 100000),则输出错误信息。 #### 五、示例运行 程序提供了两种方法来计算阶乘:`fac()` 和 `fac2()`。用户可以通过输入不同的整数n来选择合适...
(100000的阶乘),并最终打印出总和。 **1.2 代码结构** 代码主要分为两部分: - **主函数`main()`**:创建并启动两个线程,分别计算100!和100000!,等待这两个线程结束,并将它们的结果相加。 - **子线程类`...
#define M 100000 void factorial(int n) { int i, j; int a[M] = {1}; // 初始化数组的第一个元素为1 int b, m; b = m = 0; for (i = 2; i ; ++i) { for (j = 0; j ; ++j) { m = a[j] * i + b; a[j] = m ...
统计100到100000之间所有数字之和为5的整数数量。首先,将整数分解为各个位,然后累加位上的数字,如果累加和为5,则计数器加1。知识点包括分解整数、累加和条件判断。 6.1 **四位数字的下划线间隔输出**: 输入...
4. **回文数**:第四个程序查找并打印100000以内所有的回文数,即正读反读都一样的数字。通过一系列条件判断来检查一个数是否是回文。这也展示了C语言如何处理位操作和条件表达式。 5. **无穷级数求和**:第五个...
阶乘的计算可以通过循环实现,从1到N,将所有数字相乘得到N的阶乘。 5. **求最大公约数和最小公倍数**: 辗转相除法(欧几里得算法)可以求出两个数的最大公约数,然后利用最大公约数求最小公倍数,即两数之积...
if (a || a >= 100000) { System.out.println("Error Input, please run this program Again!"); System.exit(0); } if (a >= 0 && a ) { System.out.println(a + "是一位数"); System.out.println("按逆序...