A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小小羊 中级黑马   /  2015-6-22 21:21  /  1116 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  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. }
复制代码

评分

参与人数 1黑马币 +4 收起 理由
唐枫 + 4 很有思想,学以致用

查看全部评分

10 个回复

倒序浏览
沙发,这不是今晚的作业吗嘛?
回复 使用道具 举报
不错!!!!!
回复 使用道具 举报
楼主的方法不错 学习了
回复 使用道具 举报
很好......
回复 使用道具 举报
皇道金丹 发表于 2015-6-22 21:30
沙发,这不是今晚的作业吗嘛?

是啊,绕了好长时间
回复 使用道具 举报
唐枫 高级黑马 2015-6-22 22:41:27
7#
有价值的代码有奖哦
回复 使用道具 举报
你想说明什么。。。
回复 使用道具 举报
一个for循环的事你搞这么多.
int a,b,sum;
a=b=1;
for(int i;i<n;i++){
b*=a;
a++;
sum+=b;
}printf("%d",sum);
回复 使用道具 举报
楼上正解,不愧是我前桌。。。:lol
回复 使用道具 举报
突然想起一件事,题目的第一句话。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马