小迪 发表于 2016-2-21 18:51:18

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

本帖最后由 小迪 于 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;
}


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

zjk 发表于 2016-2-21 20:24:51

不行你转python吧你,,完全不考虑这种问题

小迪 发表于 2016-2-21 21:18:04

你学习的python吗,能开发什么,POST可以写吗?操作内存,写WG可以不?

gascd 发表于 2016-2-25 21:06:33

我有一个很烂的方法:定义字符数组,然后让用户输入数字,   在计算的时候强制转换为整数进行计算最后输出内存强制转换后字符串的计算结果。




页: [1]
查看完整版本: 如何解决阶乘运算中大数溢出的问题?求助!!!!!!!!!!!!