我不会
2条回答 默认 最新
- 小公鸡卡哇伊呀~ 2021-10-06 13:22关注
20! 是个非常大的数字,使用 unsigned long long int 存储整数得到的是不同的值:
#include <stdio.h> unsigned long long factorial(int n) { if (n == 0) return 1; else return (n * factorial(n-1)); } void func() { int i,t=1; double s = 0; for (i=1;i<=20;i++) { t*=i; s += t; } printf("%g",s); } int main() { unsigned long long sum = 0; for (int i = 1; i <= 20; i++) sum += factorial(i); printf("%llu\n", sum); func(); return 0; }
结果是:
2561327494111820313
4.56301e+09
如果数字再大一些,估计得用第三方库了。但是 python 天然就支持任意大的表数范围,如果使用 python,
sum = 0 t = 1 for i in range(1, 21): t *= i sum += t print(sum)
输出结果是 2561327494111820313
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 csmar数据进行spss描述性统计分析
- ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
- ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
- ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
- ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
- ¥15 运动想象脑电信号数据集.vhdr
- ¥15 三因素重复测量数据R语句编写,不存在交互作用
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?