题目如上,这是一道入门级的题目,但也很容易错,注意到题目中所给n的范围是不超过20,而在n的阶层之和中,20!=2,432,902,008,176,640,000,double类型最多存储1.7*10^308
而20!用科学计数法是2.43290200817664e+326已经超过了double最大存储范围,该题目的解决方法是用long long 类型,代码如下:
#include<stdio.h> long long s(int n) { if(n==1) return 1; return n*s(n-1); } int main() { int x; int i; long long sum=0; scanf("%d",&x); for(i=1;i<=x;i++) { sum+=s(i); } printf("%lld",sum); }
n的阶层之和问题
最新推荐文章于 2022-11-15 09:44:30 发布