c算法-阶乘求和

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012320459/article/details/48649385

题目及代码:

#include <stdio.h>

int main(int argc, const char * argv[]) {
/**
 题目:求1+2!+3!+...+20!的和
 (程序分析:此程序只是把累加变成了累乘。)
 **/
    int count=20,sum=0;//number是每个数
    long number=1;
    for (int i=1; i<=count; i++) {
        number=1;
        for (int j=1; j<=i; j++) {
            number*=j;
        }
        sum+=number;
    }
    printf("sum=%d\n",sum);
    return 0;
}

运行:

这里写图片描述

展开阅读全文

算法请教:一个循环搞定阶乘求和

05-13

我妹妹在学计算机,老师出给她这么个题目rnn=5rn则返回:x = 5*4*...*1 + 4*3.. + 3*... + 2 +1rn我妹说她只能和两个循环写出来,我刚开始觉得这好像不是难题,我说一个循环可以搞定的,她说老师也说可以写成一个循环,看我那么能吹,就让我帮她写个例子,哈哈rn结果我就跑这来请教各位老师了:)rnrn我当然也不是什么都没做啦:)rn下面是我发在她信箱里的内容,请各位高手指点一下,看这个题目怎么可以用一个循环搞定rnrnrn=====================================================rnrn不行啦,哈哈,搞不定这个看似简单的题目,想用一个循环似乎不太容易:)rn回头我去请教请教CSDN的朋友们,看看他们有没有高招rnrn我现在用的是递归,但我总觉得递归应该是循环的一种,不知我理解的对不对?rn所以我现在的方法虽然代码短,但本质上还是两个循环(按我的对递归的理解)rn代码如下:rnFunction JC_SUM(n As Long) As LongrnIf n Then JC_SUM = JC_SUM(n - 1) + JC(n)rnEnd FunctionrnrnFunction JC(n As Long) As LongrnIf n = 0 Then JC = 1 Else JC = n * JC(n - 1)rnEnd Functionrnrn下面是测试代码:rnDim i As LongrnFor i = 1 To 12 '最大就只能是12,再多就溢出了rnDebug.Print i & ":" & vbTab & JC_SUM(i)rnNext irnrn运行结果如下:rn 1: 1rn 2: 3rn 3: 9rn 4: 33rn 5: 153rn 6: 873rn 7: 5913rn 8: 46233rn 9: 409113rn10: 4037913rn11: 43954713rn12: 522956313 论坛

没有更多推荐了,返回首页