解题思路:主要还是解决其中可能的溢出问题,把较大的数定义为long int 就好了。
注意事项: 注意溢出!!!!
参考代码:
#include <stdio.h>
long int func(long int n){
if(n>1){
return n*func(n-1);
}
if(n==0||n==1){
return 1;
}
}
int main(){
long int n,a[21];//我这里a【21】取的是n的阶乘,故应该用long int
long long sum = 0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
a[i]=func(i);
sum+=a[i];
}
printf("%ld",sum);
return 0;
}
0.0分
0 人评分
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:705 |
矩形面积交 (Java代码)浏览:1214 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:899 |
【计算两点间的距离】 (C语言代码)浏览:883 |
简单的a+b (C语言代码)浏览:530 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:333 |
WU-字符串比较 (C++代码)浏览:756 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:916 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:662 |
1025题解浏览:736 |