初学者,怎么做1到100的累乘问题?

吉文翔 2015-11-30 09:06:21


我写的这样,但是debug出来结果是0,为什么啊
...全文
1135 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nzntnznt 2019-06-30
  • 打赏
  • 举报
回复
结果:141229638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000
byronqiji 2015-11-30
  • 打赏
  • 举报
回复
引用 2 楼 lakers999 的回复:
[quote=引用 1 楼 byronqiji 的回复:] 阶乘值太大,大于long的最大值了,甚至大于ulong的最大值了
所以如果要做1到100阶乘的话,该怎么办呢[/quote] 若真要做100的阶乘,可以考虑使用double,但得到的是一个近似值,不是精确值

            double s = 1;
            for (int i = 1; i <= 100; ++i)
            {
                s *= i;
            }
            Console.WriteLine(s.ToString());
输出是 9.3326E+157
吉文翔 2015-11-30
  • 打赏
  • 举报
回复
引用 5 楼 andywangguanxi 的回复:
C# 4.0中有BigInteger,添加System.Numerics.dll 的引用

            BigInteger result = 1;
            int i = 1;
            while (i <= 100)
            {
                result *= i++;
            }
涨姿势了
吉文翔 2015-11-30
  • 打赏
  • 举报
回复
引用 4 楼 byronqiji 的回复:
[quote=引用 2 楼 lakers999 的回复:] [quote=引用 1 楼 byronqiji 的回复:] 阶乘值太大,大于long的最大值了,甚至大于ulong的最大值了
所以如果要做1到100阶乘的话,该怎么办呢[/quote] 实际编程中 你需要这么大的一个数值么? 目前C#的编程中 值类型最大是ulong,[/quote] 好像确实不需要,但只是好奇而已
EdsionWang 2015-11-30
  • 打赏
  • 举报
回复
C# 4.0中有BigInteger,添加System.Numerics.dll 的引用

            BigInteger result = 1;
            int i = 1;
            while (i <= 100)
            {
                result *= i++;
            }
byronqiji 2015-11-30
  • 打赏
  • 举报
回复
引用 2 楼 lakers999 的回复:
[quote=引用 1 楼 byronqiji 的回复:] 阶乘值太大,大于long的最大值了,甚至大于ulong的最大值了
所以如果要做1到100阶乘的话,该怎么办呢[/quote] 实际编程中 你需要这么大的一个数值么? 目前C#的编程中 值类型最大是ulong,
byronqiji 2015-11-30
  • 打赏
  • 举报
回复
long的大小 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 ulong的大小 0 到 18,446,744,073,709,551,615 累乘到66时就超过了ulong的最大值了 数值溢出,所以显示为0
byronqiji 2015-11-30
  • 打赏
  • 举报
回复
阶乘值太大,大于long的最大值了,甚至大于ulong的最大值了
吉文翔 2015-11-30
  • 打赏
  • 举报
回复
引用 1 楼 byronqiji 的回复:
阶乘值太大,大于long的最大值了,甚至大于ulong的最大值了
所以如果要做1到100阶乘的话,该怎么办呢

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧