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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


1+2!+3!+...+20!
的和
  
1.
程序分析:此程序只是把累加变成了累乘。


2.
程序源代码:

main()
{  
float n,s=0,t=1;  
for(n=1;n<=20;n++)

{

t*=n;

s+=t;

}  
printf("1+2!+3!...+20!=%e\n",s);
}  

21 个回复

倒序浏览
这个解题思路很好!赞一个
回复 使用道具 举报
可以完全不用循环!!!!  两个递归嵌套
回复 使用道具 举报
我写了两个For循环才弄出来,大神一个就可以,向大神学习!
回复 使用道具 举报
学习了。。。。
回复 使用道具 举报
//  求阶乘
int jiecheng(int number)
{
    if(number==1)
        {
                return 1;
        }
        return jiecheng(number-1)*number;
}
// 伪循环
int weixunhuan(int layer)
{
        if(layer==2)
        {
                return jiecheng(2)+1;
        }
        return jiecheng(layer)+weixunhuan(layer-1);

}


// main 函数直接调用 weixunhuan 就好了
回复 使用道具 举报
fixer 中级黑马 2015-5-23 23:57:38
7#
哇,哦,大神,
回复 使用道具 举报
搬走借鉴一下
回复 使用道具 举报
用一个嵌套来写,代码会好看点
回复 使用道具 举报
在main函数中用FOR循环求和,然后再定义一个求阶乘的递归函数
回复 使用道具 举报
18612539120 来自手机 中级黑马 2015-5-24 00:46:06
11#
酷         
回复 使用道具 举报
学习了楼主
回复 使用道具 举报
受教了。。。
回复 使用道具 举报
我一般用递归,效率不高,米这个很好

评分

参与人数 1黑马币 +10 收起 理由
649678291 + 10 淡定

查看全部评分

回复 使用道具 举报
牛!!刚试了一下,能行。 不过你定义变量是不是该定整型的
回复 使用道具 举报
Rdxer 发表于 2015-5-23 23:03
可以完全不用循环!!!!  两个递归嵌套

递归跟循环都差不多吧?
回复 使用道具 举报
真到位....我想很久,用了一个很笨的方法...
回复 使用道具 举报
整一个函数 不就行了
回复 使用道具 举报
这不求解了吗啊
回复 使用道具 举报
真棒,学习了学习了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马