解题思路:主要还是解决其中可能的溢出问题,把较大的数定义为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语言代码)浏览:3908 |
【回文数(二)】 (C语言代码)浏览:857 |
弟弟的作业 (C++代码)浏览:1304 |
C语言训练-排序问题<1> (C++代码)浏览:604 |
【绝对值排序】 (C语言代码)浏览:717 |
大神老白 (C语言代码)浏览:645 |
求组合数 (C语言代码)浏览:1159 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:514 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:5232 |
WU-字符串比较 (C++代码)浏览:760 |