/* 题目: 编写一个函数int pieAdd(int n),计算1!+2!+3!+……+n!的值(n>=1)。 比如pieAdd(3)的返回值是1! + 2! + 3! = 1 + 1*2 + 1*2*3 = 9 */ #include <stdio.h> //常规实现n的阶乘 //int jieCheng(int a) //{ // int sum = 1; // for (int i = 1; i<=a; i++) { // sum = sum*i; // } // return sum; //}
//递归实现n的阶乘 int jieCheng(int a) { int sum; if(a==1) sum=1; else sum=a*jieCheng(a-1); return sum; }
void pieAdd(int n) { int sum=0; for(int i = 1;i<=n;i++) { sum=sum+jieCheng(i); } printf("%d\n",sum); } int main(int argc, const char * argv[]) {
int t; printf("请输入:"); scanf("%d",&t); pieAdd(t); return 0; } 自己运行了下 没发现问题,大神看看有问题没;P
|