鱼C论坛

 找回密码
 立即注册
查看: 2960|回复: 3

如何解决阶乘运算中大数溢出的问题?求助!!!!!!!!!!!!

[复制链接]
发表于 2016-2-21 18:51:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小迪 于 2016-2-21 18:53 编辑


//  阶乘

#include <stdio.h>
main()
{
        //代码开始
        long long int num=1,n=0,i=1;//分别定义num[自己乘以i的数,即部分阶乘]、n[被阶乘的数字]、i[自加1的数]
        while(1)
        {
start:
                num=1;
                n=0;
                i=1;
                scanf("%d",&n);
                getchar();
                if(n<=0)
                {
                        printf("您输入的数字不合法!请重新输入!\n");
                        goto start;
                }
                printf("%d的阶乘计算公式及结果如下所示:\n",n);
                printf("1");
                do
                {
                        num=num*i;
                        if(i>1)
                        {
                                printf("×%d",i);
                        }       
                        i=i+1;
                } while (i<=n);
                printf("=%d\n",num);
        }


        getchar();
        return 0;
}


如题所示,当进行大一点的数字时就会溢出,算出来的数不正确,该怎样解决?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-2-21 20:24:51 | 显示全部楼层
不行你转python吧你,,完全不考虑这种问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-21 21:18:04 | 显示全部楼层
你学习的python吗,能开发什么,POST可以写吗?操作内存,写WG可以不?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-25 21:06:33 | 显示全部楼层
我有一个很烂的方法:  定义字符数组,然后让用户输入数字,   在计算的时候强制转换为整数进行计算  最后输出内存强制转换后字符串的计算结果。




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 00:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表