`
mmdev
  • 浏览: 13219595 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

大数阶乘的求法

 
阅读更多

首先是定义一个数组,然后用数组的每一个元素来记录运算结果的每一个,从个位数字开始算起,这样可以很好地解决进位的问题。

程序源代码:

import java.util.Scanner;

public class Test {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i,j,n,max = 1000;
int num[] = new int[max];
num[0] = 1;
n = sc.nextInt();
for( i=2;i<=n;i++)
{
int c = 0;
for(j =0;j<max;j++)
{
int s = num[j]*i+c;
num[j] = s%10;
c = s/10;
}
}
for(j = max-1;j>=0;j--)
{ 
if(num[j]!=0)
break;
} 
for(i = j;i>=0;i--)
System.out.print(num[i]);

}
}


运行示例:

输入:30

输出的结果为:265252859812191058636308480000000

这样就能解决掉,当然在java中可以使用BigInteger类来解决所有的大数问题,并且封装好了很多使用的方法。

分享到:
评论

相关推荐

    大数阶乘数据结构算法课程设计-副本.pdf

    通过本篇文章,读者可以了解到大数阶乘算法的基本原理和实现方法,并且能够设计和实现一个适合大数阶乘的数据结构。 一、数据的表示和存储 在大数阶乘算法中,数据的表示和存储是非常重要的。由于阶乘运算的精确性...

    N!的求法 大数阶乘 最好的大数阶乘 C++

    的求法:大数阶乘的最佳C++实现 在计算机科学中,阶乘是一种常见的数学运算,表示为N!(其中N为非负整数),它是指所有小于及等于N的正整数的乘积。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。随着N的增加,N!的值会...

    大数阶乘(用单链表实现大数阶乘)

    "大数阶乘"是指计算一个较大的正整数的阶乘,这个数值通常超过了标准数据类型(如int或long)能表示的最大范围。在这个场景下,我们通常会采用特殊的表示方法,比如字符串或自定义的数据结构,例如单链表。以下将...

    汇编语言实现的大数阶乘算法

    在编程领域,大数阶乘算法是一个挑战性的任务,尤其当使用低级语言如汇编时。汇编语言是计算机可以直接执行的机器码的一种符号表示,它提供了对硬件的直接控制,但编程复杂度较高。本篇文章将深入探讨如何利用汇编...

    【C#】求大数阶乘_算法_C#

    - 运算方法:实现加法、减法、乘法等基本操作,然后通过这些操作实现大数阶乘。乘法是阶乘的核心,可以使用分治策略的Karatsuba算法或者Toom-Cook算法等高效算法进行优化。 - 阶乘计算:从1乘到n,每次乘法的结果...

    简单的java大数阶乘运算算法

    迭代法避免了递归带来的栈空间问题,因此更适合处理大数阶乘。 在实际应用中,为了提高效率和减少资源消耗,可以考虑使用尾递归优化或者记忆化搜索等技术。对于非常大的数,还可以考虑使用矩阵快速幂等高级算法来...

    大数阶乘 Visual C++ 链表实现

    本项目“大数阶乘 Visual C++ 链表实现”专注于解决大数阶乘的计算问题,利用链表数据结构来优化存储和运算效率。下面将详细介绍这个项目中的关键知识点。 一、大数阶乘 大数阶乘是计算一个大整数(通常超过普通...

    c/c++大数阶乘

    本文将详细讲解如何在C/C++中实现大数阶乘的计算方法。 首先,我们需要理解阶乘的概念。阶乘是一个正整数n与小于它的所有正整数的积,表示为n!。例如,5! = 5 × 4 × 3 × 2 × 1 = 120。当n增大时,结果会迅速...

    大数阶乘,基于数据结构的单链表实现

    在计算机科学领域,大数阶乘是一个常见的计算挑战,因为它涉及到处理超过常规整型范围的数值。本主题将深入探讨如何使用数据结构中的单链表来实现大数阶乘的计算,同时关注程序的执行效率。 单链表是一种基本的数据...

    C++ 双链表 大数阶乘

    在编程领域,大数阶乘是一项挑战性的任务,特别是在使用如C++这样的低级语言时。本主题将深入探讨如何利用双链表来实现大数阶乘的计算,并讨论其性能和时间复杂度。 首先,我们需要理解双链表的基本概念。双链表是...

    大数阶乘 双向链表

    在计算机科学中,处理大数阶乘是一项挑战性的任务,因为普通的整数类型无法存储非常大的数值。本主题聚焦于如何使用双向链表这一数据结构来实现大数阶乘的计算。双向链表允许我们有效地存储和操作大数,同时保持良好...

    大数阶乘C++代码

    在编程领域,大数阶乘是一个经典的问题,特别是在计算数学和算法设计中。当我们尝试计算一个非常大的整数(如1000)的阶乘时,常规的数据类型,如int或long long,都无法容纳这样的结果,因为它们的位宽有限。在这种...

    大数阶乘(双向链表)c++

    总之,使用双向链表和C++来实现大数阶乘是一种有效的方法,它充分利用了链表的灵活性来处理大整数的乘法操作。通过对链表的操作,我们可以方便地存储、操作和展示结果,而无需依赖特定的大数库。这样的实现不仅有助...

    大数相乘大数相加大数阶乘代码

    这里我们关注的焦点是大数相乘、大数相加以及大数阶乘的算法实现,这些都是计算密集型任务,尤其是在处理极端数值时。下面将详细介绍这三个知识点,并提供一个使用C++实现的示例。 1. **大数相乘**: 大数相乘通常...

    C++版本大数阶乘原理讲解及代码实现

    ### C++版本大数阶乘原理讲解及代码实现 #### 概述 在计算机科学领域,阶乘是一个常见的数学运算,表示为n! = n × (n-1) × ......对于较小的数值,如n ...此方法不仅能够高效地处理大数阶乘问题,而且易于理解和实现。

    大数阶乘程序(VS2005实现)

    在编程领域,大数阶乘是一项挑战性的计算任务,因为它涉及到处理超过常规整型范围的数值。本项目“大数阶乘程序(VS2005实现)”提供了一个简单的解决方案,采用数组来存储和处理大数。在本文中,我们将深入探讨大数...

    大数阶乘的程序编写的 经典算法 和 支持大数的算法

    这个改进后的算法有效地解决了大数阶乘的问题,能够处理任意大小的输入n,只要内存足够存放阶乘结果的每一位。这种存储和计算大数的方法被称为“大数表示法”,是许多高级计算器和编程语言处理大数的基础。在实际...

    大数阶乘 C++数据结构

    在编程领域,大数阶乘是一项挑战性的任务,因为它涉及到处理非常大的数字并进行复杂的计算。在这个场景中,我们讨论的程序是用C++编写的,它利用了数据结构,特别是栈和双端队列(deque)来实现大数阶乘的计算。下面...

    C++ 实现大数阶乘的算法

    在编程领域,大数阶乘计算是一个常见的挑战,特别是在处理非常大的整数时。本篇文章将深入探讨如何使用C++的链表数据结构来实现大数阶乘算法。C++的`list()`模板是一种高效且灵活的数据结构,特别适合处理动态增长的...

    Windows32位汇编语言课程设计求大数阶乘

    ### Windows 32位汇编语言课程设计:求大数阶乘 在计算机科学与技术领域,特别是软件开发和算法优化方面,对于处理大数运算的需求十分常见。本篇文章将详细解析一个基于Windows 32位环境下的汇编语言程序,该程序的...

Global site tag (gtag.js) - Google Analytics