滴水逆向联盟
标题: 基于visual Studio2013解决C语言竞赛题之0405阶乘求和 [打印本页]
作者: 大灰狼 时间: 2014-10-8 16:21
标题: 基于visual Studio2013解决C语言竞赛题之0405阶乘求和
题目
解决代码及点评这道题和上一道题类似,第n个累加项 = n-1累加项的n倍
由于有这个规律,我们可以用一个for循环实现
但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更加有效率
这个代码把n的阶乘写成了一个函数
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/************************************************************************/
- /*
- 5. 用循环语句编写求 1到20的阶乘的程序。
- */
- /************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- int f45(int num) // 实现阶乘的函数
- {
- int sum=1;
- if (num==0)
- {
- return sum;
- }
- for ( int i=1;i<=num;i++) // 使用for循环,累乘所有项
- {
-
- sum*=i;
- }
- return sum;
- }
- void main()
- {
- int totlesum=0;
- for (int i=1;i<21;i++) // 21阶乘累加
- {
- totlesum+=f45(i); // f45函数实现了i的阶乘,每次累加返回值
- }
- printf("和为:%d",totlesum );
- system("pause");
- }</pre><br></pre><br>
欢迎光临 滴水逆向联盟 (http://www.dtdebug.com/) |
Powered by Discuz! X3.2 |