`

求n!

F# 
阅读更多
/********************************************************
* 求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!”进一步确认了这个算法的目标是精确计算N的阶乘,...

    用labview8.5求n!

    用labview8.5求n!加以改进就可以对任何阶乘进行计算

    汇编 子程序设计 求N!

    【汇编语言子程序设计——求N!】 在汇编语言程序设计中,子程序设计是一种重要的编程技术,它使得程序模块化,提高了代码的复用性和可读性。本实验旨在通过设计一个求N的阶乘(N!)的子程序,让学生掌握汇编语言中...

    求N!的值.java

    在这个例子中,文件名为“求N!的值.java”,但是类名为`c1`,这可能在实际编译时会导致错误。为了遵循最佳实践,建议将类名改为`Factorial`或类似名称,并且文件名也应该一致。 - **类定义**:`public class c1 { .....

    10_02 V4 (求n!-递归).cpp

    求n!-递归

    求N!的高精度算法——本文中的算法主要针对Pascal语言

    求N!的高精度算法,Pascal中的标准整数类型,高精度算法的基本思想。

    求n!输出1-N的阶乘

    求n!输出1-N的阶乘.c语言,一个.cpp文件

    求n!末尾0的个数

    求n!数的末尾0的个数.用c语言实现。 简单方便

    求N!的高精度算法!!!

    计算 n 位高进制数与 m 位高进制数的积需要 n*m 次乘法。对于连乘的复杂度分析,可以使用分解质因数和二分法来提高效率。 最后,高精度算法的优化是非常重要的。可以通过设置缓存、分解质因数、非顺序连乘等方法来...

    一个简单的C#WindowsForm程序,用递归求N!

    本项目中的"一个简单的C# WindowsForm程序,用递归求N!"是一个教学示例,旨在教授如何在C#环境下利用递归算法计算阶乘(N!)。 首先,让我们理解什么是阶乘。阶乘是数学中的一个概念,表示一个正整数n的所有小于...

    习02.05 用三种循环语句求n!.rar

    java程序设计实用教程(第3版)习02.05 用三种循环语句求n!.rar

    C语言中利用递归的方式得到n!

    【问题描述】编写函数f,功能是用递归的方法求n!,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f求出n!并在主函数中输出。 【输入形式】10 【输出形式】10!=3628800 【样例输入】10 【样例...

    高精度计算--求n!的值

    高精度计算--求n!的值

    c++ 求n!、算24点、汉诺塔

    标题 "c++ 求n!、算24点、汉诺塔" 涵盖了三个经典编程问题,它们是计算机科学初学者常遇到的练习。这些练习可以帮助学习者掌握C++语言的基础知识,包括循环、条件判断、递归等核心概念。以下是关于这三个主题的详细...

    C++ 课程设计报告 求n!,算24点,汉诺塔

    通过完成如求n!、算24点和汉诺塔这样的项目,学生能够深入理解面向对象编程和递归算法,并能灵活运用到实际问题中。同时,良好的报告撰写能力也是衡量学习成果的重要标准,它反映了对知识的理解和表达。

    汇编语言 计算N!的程序

    用汇编语言实现计算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!(递归算法),求N!,只是演示,输入1~10的数即可。@易语言学习论坛。

    编程实现计算:1!+2!+3!+……+N!的值,要求定义并调用函数计算N!。

    阶乘表示为一个正整数n与小于等于n的所有正整数的乘积,通常表示为n!。例如,5!(5的阶乘)等于5×4×3×2×1,即120。 本题要求使用Delphi编程语言实现计算1! + 2! + 3! + ... + N!的值。这是一个递归问题,因为...

    求n个整数的阶乘1!+2!+3!+...n!,VB.net源代码

    阶乘表示一个正整数n的所有小于等于n的正整数的乘积,记为n!。例如,5!(5的阶乘)等于1×2×3×4×5=120。在本主题中,我们将探讨如何使用VB.NET(Visual Basic .NET)编程语言来实现计算阶乘的算法,并将这些数值...

Global site tag (gtag.js) - Google Analytics