解题思路: 递归
注意事项: 由题可知,n<=20,当n越接近20,其数量及越庞大,求阶乘与求阶乘和时应使用long long int 类型。
参考代码:
#include <stdio.h> long long int fun(int n){ // 使用递归求每个数的阶乘 if(n<=1) return 1; else return n*fun(n-1); } // long long int sum(int n){ // 使用递归求阶乘之和 // if(n==1) // return fun(1); // else // return fun(n)+sum(n-1); // } int main() { int n; long long int Sn=0; scanf("%d",&n); for (int i = 1; i <= n; ++i) { // 使用循环求阶乘之和 Sn=Sn+fun(i); } printf("%lld",Sn); // printf("%lld",sum(n)); return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:889 |
【明明的随机数】 (C++代码)浏览:779 |
哥德巴赫曾猜测 (C语言代码)浏览:994 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1294 |
1011题解浏览:760 |
震宇大神的杀毒软件 (C语言代码)浏览:1079 |
一元一次方程 (C语言代码)浏览:4059 |
C语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:762 |
多输入输出练习2 (C语言代码)浏览:1655 |