C/C++ 求1+2!+3!+…+20!的和

C/C++ 求1+2!+3!+…+20!的和

 

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 面向对象

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 设计模式

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ STL

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 技术杂谈

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 常用函数

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 图像处理

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 算法/面试

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 项目实战


一.结果演示

1+2!+3!...+20!=268040729

int 所能表示的最大值为 2147483647 ,而 20! 的结果超出了 int 所能表示最大值。因此,在计算阶乘时,采用 long,详细请参考:《C语言数据类型 / 变量类型》


二.源代码

程序分析:此程序只是把累加变成了累乘,源码如下:

[wppay]

/************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C/C++ 求1+2!+3!+…+20!的和
//@Time:2021/10/01 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/************************************************************************/

#include <stdio.h>
#include <math.h>
#include <windows.h>

int main()
{
	long n, s = 0, t = 1;
	for (n = 1; n <= 20; n++)
	{
		t *= n;
		s += t;
	}
	printf("1+2!+3!...+20!=%lld\n", s);
	
}

[/wppay]

开通 vip 会员可免费阅读所有文章哟

代码下载:code.c


C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

解决办法参考:《C/C++ error C4996: ‘getch’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conf》


三.猜你喜欢


   

   

推荐文章

发表评论