用C语言计算1到20的阶乘之和,用C语言计算1~20的阶乘之和

昨天(2018/12/7)在做C语言的课后练习题的时候,有一道题要求我们计算1~20的阶乘之和。代码很快就写出来了,考虑到结果的值会比较大,而在Windows操作系统下,int 类型和 long 类型居然都是4个字节(C#中long类型是八个字节,找同学试了下,Linux下C语言的long类型好像也是八个字节),所以我使用double类型。代码如下:

1 #include 2

3 intmain()4 {5 double n = 1, sum = 0;6 for (int i = 1; i <= 20; i++)7 {8 n *=i;9 sum +=n;10 }11 printf("%lf",sum);12 }

结果输出了:2561327494111820300.000000

我以为我得到了正确的结果,但我将同样的算法搬到C#中之后,却好像不是那么回事。(考虑到C#中long类型是八个字节,范围足够大,所以在C#中我直接使用了long类型。)代码如下:

1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.Linq;4 usingSystem.Text;5 usingSystem.Threading.Tasks;6

7 namespaceHomework8 {9 classProgram10 {11 static void Main(string[] args)12 {13 long n = 1, sum = 0;14 for (int i = 1; i <= 20; ++i)15 {16 n *=i;17 sum +=n;18 }19 Console.Writ

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值