热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言中阶乘的精确值

 对于大数的操作,可能超出int,甚至long的表示范围,对此,可以使用数组来存储大数,下列代码为求1000以内数的阶乘的代码,代码如下:#include&

  对于大数的操作,可能超出int,甚至long的表示范围,对此,可以使用数组来存储大数,下列代码为求1000以内数的阶乘的代码,代码如下:

#include 
#include<string.h>
const int max=3000;
int main()
{
    int f[3000];//存放最终的结果
    int i,j,n,c,tem;
    memset(f,0,sizeof(f));
    scanf("%d",&n);
    f[0]=1;
    for(i=2;i<=n;i++)
    {
        c=0;
        for(j=0;j)
        {
            tem=i*f[j]+c;
            c=tem/10;
            f[j]=tem%10;

        }
    }
    for(j=max-1;j>=0;j--)
        if(f[j]!=0)
            break;
        for(i=j;i>=0;i--)
            printf("%d",f[i]);    
        printf("\n");
    return 0;
}

对于这段代码的理解,可以利用最简单的例子来阐明。

例如,利用int 数组来存储结果,数组长度为4,数组名为a.

在45*33的运算中,利用小学的笔算方法如下:

                                c语言中阶乘的精确值

  在计算机语言中,我们是这样计算的,首先a[0]=5,a[1]=4,a[3]=0,a[4]=0;

33*a[0]=135,此刻将a[0]赋值为5,进位为c=13

第二步

33*a[1]+c=148,此刻将a[1]赋值为8,进位为c=14

第三步

33*a[2]+c=14,此刻将a[2]赋值为4,进位为c=1

第四步

33*a[3]+c=1,此刻将a[3]赋值为1,运算成功!

                            


推荐阅读
  • C/C++利用栈和队列实现停车场管理系统【C++教程】
    数据结构的课程设计一般都不是很好理解,今天小编为大家总结了一下c和c++版本的常见栈和队列的的停车场管理程序,需要 ... [详细]
  • 深入解析C语言中的大小端字节序存储机制
    在C语言中,当编译器执行“创建变量”的指令时,会为该变量在内存中分配相应的存储空间。对于整型变量,其值通常以二进制补码形式存储。此外,不同系统采用的大端或小端字节序对数据的实际存储方式有显著影响,理解这些机制有助于开发者更好地控制数据的读写过程。 ... [详细]
  • Android数组截取技巧及JNI数组交互在仓库构建中的应用分析
    在Android开发中,数组截取技巧和JNI数组交互在仓库构建中的应用具有重要意义。JNI提供了两种主要的数组处理方法:一是生成原生层数组的副本,二是直接通过数组指针进行操作。在进行字符串处理时,如果需要执行其他复杂操作,可以结合这两种方法以提高效率和灵活性。此外,合理利用这些技术可以显著提升应用程序的性能和稳定性。 ... [详细]
  • 如何在C++中定位数组中特定数字的最后一个位置 ... [详细]
  • 本文介绍了一个基于C++标准库实现的INI文件读写操作类。该类在现有网络资源的基础上进行了扩展和优化,增加了获取当前可执行文件路径和宽字节与多字节字符串转换的功能。通过这些增强功能,该类能够更好地适应各种应用场景,提高代码的可移植性和健壮性。具体实现细节请参见 `IniFileSTL.h` 文件。 ... [详细]
  • 图像拼接技术深入解析:基于OpenCV 3.4的Stitching模块源码分析(下篇)
    本文继续深入探讨图像拼接技术,特别是在OpenCV 3.4的Stitching模块中的源码实现。通过与VLFeat的SIFT实现进行对比,详细分析了OpenCV在图像特征提取、匹配及拼接过程中的关键算法和技术细节,为读者提供了全面的技术解析和实践指导。 ... [详细]
  • Python初学者入门指南:从基础到实践的全面学习路径本文为Python初学者提供了一条从基础到实践的全面学习路径。特别介绍了Python字典(Dictionary)中的`items()`方法,该方法用于返回字典中所有键值对的视图对象,便于在循环和其他操作中使用。通过实例讲解,帮助读者更好地理解和应用这一重要功能。 ... [详细]
  • 安装Qt时,Qt\Qt5.x.x文件夹下自动安装了example文件夹,其中包含了大量的示例。这里根据Examples\Qt-5.5\widgets\t ... [详细]
  • CatchThatCowTimeLimit:50002000MS(JavaOthers)MemoryLimit:3276832768K(JavaOt ... [详细]
  • 本文继续为新手程序员提供C语言的基础练习与进阶内容。涵盖的主题包括:ASCII码的使用、出生日期的输入输出、按指定格式输入并交换输出、字符与ASCII码的转换、表达式值的计算、带余除法的实现、四位数的反向输出以及Kiki算术问题的解决。每个练习都旨在帮助读者加深对C语言基本概念和编程技巧的理解。 ... [详细]
  • 在解决此问题时,最初对输入格式的理解存在困惑,导致编写代码过程中出现多次错误。通过参考他人代码,最终明白输入包含两个测试案例:一个案例中有4个节点,需要进行两次结构对比;另一个案例有2个节点,只需进行一次对比。输出结果应为“是”或“否”,以表明两棵树的结构是否相同。 ... [详细]
  • 本文深入解析了Java编译过程,重点探讨了从源代码到字节码文件的转换机制。通过具体示例,如 `Hello.java` 的编译与反编译过程,详细介绍了 `javap -verbose` 命令的使用方法及其在字节码分析中的重要作用。此外,文章还讨论了字节码文件的结构特点及其在不同应用场景中的实际应用,为开发者提供了宝贵的参考。 ... [详细]
  • 在探讨Java动态代理机制时,本文深入分析了其核心原理与实现方式,并详细讨论了该机制在Spring框架中的应用,特别是在AOP(面向切面编程)中的作用。通过实例解析,读者可以更好地理解如何利用动态代理增强代码的灵活性和可维护性。 ... [详细]
  • 1packageFileOperation;23importjava.io.File;4importjava.io.FileFilter;5importjava.util.Arra ... [详细]
  • 题目1:给定一个非空数组A,包含有N个整数,起始下标为0。数组包含有奇数个元素,其中除了唯一一个元素之外,其他 ... [详细]
author-avatar
EvilMaknaeKYU
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有