
题目
解决代码及点评
这道题和上一道题类似,第n个累加项 = n-1累加项的n倍
由于有这个规律,我们可以用一个for循环实现
但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更加有效率
这个代码把n的阶乘写成了一个函数
/************************************************************************/
/*
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");
}
代码下载及其运行
代码下载链接:
http://download.csdn.net/detail/yincheng01/6640761
解压密码为c.itcast.cn
下载解压后用VS2013打开工程文件
点击 “本地Windows调试器” 执行
程序运行结果