/********************************************************
* 求n!
* (1)当n=0,1时,n!=1
* (2)当n>1时,n!=n(n-1)!
*********************************************************/
using System;
class Test
{
static void Main(string[] args)
{
Factorial f = new Factorial();
long a = f.F(4);
Console.Write(a);
Console.Read();
}
}
class Factorial
{
public long F(long n)
{
if (n < 0)
return -1;
if (n == 0 || n == 1)
return 1;
else
return n * F(n - 1);
}
}
/***********************************************************************
* 用数组实现n!
* n可以是百为数
************************************************************************/
using System;
class F
{
public F() { }
const int UNIT = 100;
static int count = 1;
static void Main(string[] args)
{
begin:
int a = Convert.ToInt32(Console.ReadLine());
Factorial(a);
Console.ReadLine();
goto begin;
}
public static void Factorial(int n)
{
int[] array = new int[100];
array[0] = 1;
count = 1;
while (n > 0)
{
Dohandle(array, n);
n--;
}
Console.WriteLine("Count = " + count);
Console.Write("阶乘计算结果 = ");
for (int i = count; i > -1; i--)
{
Console.Write(array[i].ToString("00"));
}
}
private static void Dohandle(int[] array, int n)
{
//每个数组元素存储2位
for (int i = count; i > -1; i--)
{
array[i] *= n;
if (array[i] > UNIT)
{
array[i + 1] += array[i] / UNIT;
array[i] = array[i] % UNIT;
if (i >= count)
{
count = i + 1;
}
}
}
}
}
分享到:
相关推荐
标题“利用高精度算法求N!”表明我们要探讨的是一种特别设计的算法,能够处理大整数N的阶乘计算,而不会受到标准整数类型限制。描述中的“输入一个数N,输出N!”进一步确认了这个算法的目标是精确计算N的阶乘,...
用labview8.5求n!加以改进就可以对任何阶乘进行计算
【汇编语言子程序设计——求N!】 在汇编语言程序设计中,子程序设计是一种重要的编程技术,它使得程序模块化,提高了代码的复用性和可读性。本实验旨在通过设计一个求N的阶乘(N!)的子程序,让学生掌握汇编语言中...
在这个例子中,文件名为“求N!的值.java”,但是类名为`c1`,这可能在实际编译时会导致错误。为了遵循最佳实践,建议将类名改为`Factorial`或类似名称,并且文件名也应该一致。 - **类定义**:`public class c1 { .....
求n!-递归
求N!的高精度算法,Pascal中的标准整数类型,高精度算法的基本思想。
求n!输出1-N的阶乘.c语言,一个.cpp文件
求n!数的末尾0的个数.用c语言实现。 简单方便
计算 n 位高进制数与 m 位高进制数的积需要 n*m 次乘法。对于连乘的复杂度分析,可以使用分解质因数和二分法来提高效率。 最后,高精度算法的优化是非常重要的。可以通过设置缓存、分解质因数、非顺序连乘等方法来...
本项目中的"一个简单的C# WindowsForm程序,用递归求N!"是一个教学示例,旨在教授如何在C#环境下利用递归算法计算阶乘(N!)。 首先,让我们理解什么是阶乘。阶乘是数学中的一个概念,表示一个正整数n的所有小于...
java程序设计实用教程(第3版)习02.05 用三种循环语句求n!.rar
【问题描述】编写函数f,功能是用递归的方法求n!,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f求出n!并在主函数中输出。 【输入形式】10 【输出形式】10!=3628800 【样例输入】10 【样例...
高精度计算--求n!的值
标题 "c++ 求n!、算24点、汉诺塔" 涵盖了三个经典编程问题,它们是计算机科学初学者常遇到的练习。这些练习可以帮助学习者掌握C++语言的基础知识,包括循环、条件判断、递归等核心概念。以下是关于这三个主题的详细...
通过完成如求n!、算24点和汉诺塔这样的项目,学生能够深入理解面向对象编程和递归算法,并能灵活运用到实际问题中。同时,良好的报告撰写能力也是衡量学习成果的重要标准,它反映了对知识的理解和表达。
用汇编语言实现计算N!的问题 data segment buff1 db 10 dup(?) nn1 db ? result1 dw 0 input db 'please input n:$' input2 db 'please input 3~7:$' input3 db 'n!=' ……
易语言求n!(递归算法),求N!,只是演示,输入1~10的数即可。@易语言学习论坛。
阶乘表示为一个正整数n与小于等于n的所有正整数的乘积,通常表示为n!。例如,5!(5的阶乘)等于5×4×3×2×1,即120。 本题要求使用Delphi编程语言实现计算1! + 2! + 3! + ... + N!的值。这是一个递归问题,因为...
阶乘表示一个正整数n的所有小于等于n的正整数的乘积,记为n!。例如,5!(5的阶乘)等于1×2×3×4×5=120。在本主题中,我们将探讨如何使用VB.NET(Visual Basic .NET)编程语言来实现计算阶乘的算法,并将这些数值...