黑马程序员技术交流社区

标题: 阶乘和累加1!+2!+3!+...+n! [打印本页]

作者: 小小羊    时间: 2015-6-22 21:21
标题: 阶乘和累加1!+2!+3!+...+n!

  1. /*
  2. 题目:
  3. 编写一个函数int pieAdd(int n),计算1!+2!+3!+……+n!的值(n>=1)。
  4. 比如pieAdd(3)的返回值是1! + 2! + 3! = 1 + 1*2 + 1*2*3 = 9
  5. */

  6. #include <stdio.h>

  7. int main(int argc, const char * argv[]) {
  8.     int n;
  9.     printf("请输入一个数:\n");
  10.     scanf("%d",&n);
  11.     int pieAdd();
  12.     int result = pieAdd(n);

  13.     printf("%d\n",result);
  14.     return 0;
  15. }

  16. int pieAdd(int n){
  17.     int quo();
  18.     int sum = 0;
  19.    
  20.     for (;n>0 ;n-- )
  21.        {
  22.         sum = sum + quo(n);
  23.        }
  24.     return sum;
  25. }

  26. int quo(int n){

  27.     int ji;
  28.     if (n==1) {
  29.         ji = 1;
  30.     }else{
  31.         ji = quo(n-1)*n;
  32.     }
  33.     return ji;
  34. }
复制代码


作者: 皇道金丹    时间: 2015-6-22 21:30
沙发,这不是今晚的作业吗嘛?
作者: 小年轻不见了    时间: 2015-6-22 21:33
不错!!!!!
作者: XiaoBaoMi    时间: 2015-6-22 21:34
楼主的方法不错 学习了
作者: cxl19900517    时间: 2015-6-22 21:45
很好......
作者: 小小羊    时间: 2015-6-22 21:51
皇道金丹 发表于 2015-6-22 21:30
沙发,这不是今晚的作业吗嘛?

是啊,绕了好长时间
作者: 唐枫    时间: 2015-6-22 22:41
有价值的代码有奖哦
作者: Dove丶凡    时间: 2015-6-22 22:46
你想说明什么。。。
作者: 李旭飞    时间: 2015-6-22 23:03
一个for循环的事你搞这么多.
int a,b,sum;
a=b=1;
for(int i;i<n;i++){
b*=a;
a++;
sum+=b;
}printf("%d",sum);
作者: 任志清-IOS    时间: 2015-6-22 23:26
楼上正解,不愧是我前桌。。。:lol
作者: 任志清-IOS    时间: 2015-6-22 23:27
突然想起一件事,题目的第一句话。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2