基于visual Studio2013解决C语言竞赛题之0405阶乘求和





题目


解决代码及点评

这道题和上一道题类似,第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调试器” 执行


程序运行结果





你可能感兴趣的:(基于visual Studio2013解决C语言竞赛题之0405阶乘求和)