• 已解决 49848 个问题
  • 已帮助 5903 位优秀工程师

C语言怎样写1000的阶乘

stm32f10x 2018-11-25 浏览量:678
用c语言能算10的阶乘但是算不了1000的阶乘
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1000的阶乘已经超过了long long的数据类型,但是数据结果可以例程数组的形式进行存储

    参考一下以下代码吧


    捕获456sert.PNG

    • 发布于 2018-12-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11
  • 可以算,计算是没有问题的

    但是 1000 的阶乘结果是个很大的数,应该是你的变量无法存储这个数据而报错,或者不报错但是运行结果不对

    可以用其他替代方法处理

    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个结果要占用几百字节的数据空间,恐怕要按照竖式乘法计算才行。
    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 主要是没有变量能够保存这么大的数,这种最好将计算分开几个部分进行
    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 既然你能写10的阶乘,那么算法肯定适用于1000的阶乘,无法实现是因为你计算机无法提供如此大的存储资源和运算资源。
    • 发布于2018-11-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 1000的阶乘和10的阶乘并没有什么不一样。按照你说的情况,应该是数据溢出了,这样的话就涉及到大数处理了,可以查看一些相关的资料,C语言处理大数是一门学问
    • 发布于2018-11-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 从算法上和程序实现上没有问题,但这个1000阶乘对一般单片机来说肯定要溢出的。

    就是普通计算机都不好计算,而且估计你还是用的整数来表示吧,早就溢出啦!

    32位无符号整数最大才4294967295,而20!就是2432902008176640000啦,所以你的程序不到20阶乘时已经溢出。

    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 运算方式没什么问题,但是有可能计算溢出,编写的时候要注意
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以计算的,但是不能有太大的计算量
    • 发布于2018-12-29
    • 举报
    • 评论 0
    • 0
    • 0

C语言怎样写1000的阶乘