c语言-阶乘求和的几种方法

这篇具有很好参考价值的文章主要介绍了c语言-阶乘求和的几种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

阶乘求和的几种方法

目录

一、阶乘定义

二、阶乘求和

1.两层for循环嵌套使用

2.一层for循环直接实现

3.函数的递归调用来求阶乘

总结



一、阶乘定义

任何大于等于1 的自然数n 阶乘表示方法:

n!=n*(n-1)*(n-2)······3*2*1

二、阶乘求和

1.两层for循环嵌套使用

代码如下(示例):

#include<stdio.h>
int main()
{
	int sum = 0;
	int ret = 1;
	int i, j;
	int n;
	scanf("%d",&n);
	for (i = 1; i <= n; i++)
	{
		ret = 1;
//此处不对ret进行值的重置,在下一次的循环中,ret的初始值不为1会出错
		for (j = 1; j <= i; j++)
		{
			ret = ret * j;
		}
		sum += ret;
	}
	printf("%d",sum);
	return 0;
}

求阶乘的和c语言程序,c语言

重点:

每一次都得让ret重置为1的原因:

每一个数字的阶乘都是从1开始一直乘到这个数字本身为止,如果我们没有将ret重置为1,那么下一个数字计算时也会用到ret,但是此时ret不为1,阶乘计算就会出错。

2.一层for循环直接实现

代码如下(示例):

不再对ret的值进行重置,直接拿来乘i直接得到了下一个数的阶乘

#include<stdio.h>
int main()
{
	int ret = 1;
	int sum = 0;
	int n = 0;
	scanf("%d",& n);
	for (int i = 1; i <= n; i++)
	{
		ret = ret * i;
		sum += ret;
	}
	printf("%d", sum);
	return 0;
}

求阶乘的和c语言程序,c语言求阶乘的和c语言程序,c语言

3.函数的递归调用来求阶乘

int factorial(int n)  
{
    int a;
    if (n == 0)
    {
        return 1;
    }
    a = factorial(n - 1) * n;
    return a;
}

int main()
{
    int n;
    int sum = 0;
    int i;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        sum += factorial(i);
    }
    printf("%d", sum);
    return 0;
}

总结:

三种方法可以用来阶乘求解,逐步优化文章来源地址https://www.toymoban.com/news/detail-728151.html

到了这里,关于c语言-阶乘求和的几种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 五种C语言编写的数列求和程序

    一、以下是一个简单使用C语言编写的数列求和程序: 在程序中,我们首先使用 scanf 函数从键盘输入数列的项数 n 。然后,使用 for 循环计算数列的和,将每一项的值加到 sum 变量中。最后,使用 printf 函数输出数列的和。 需要注意的是,上述程序中假设数列的项数 n 大于等于

    2024年02月04日
    浏览(43)
  • C语言的几种缺陷及其规避方法

    一、C语言的几种缺陷 C语言作为一种老牌编程语言,在其诞生时代的背景下是十分先进的,为编程领域的发展做出了重要贡献。但是,随着计算机体系结构、软硬件环境的不断演进,C语言所存在的一些缺点也逐渐凸显出来。以下是C语言的一些缺陷: 容易出现指针错误:C语言

    2024年02月09日
    浏览(38)
  • C语言中判断素数的几种方法

    作为C的初学者们希望大家看看这几种判断素数的方法 既然进来了就看完把 题目要求: 判断n是否为素数。 首先我们讲一下素数的判定:素数就是只能被1或者本身整除的数,这就延伸出了几种不同的判定方法。 方法一:因为判断素数相当于就是判断这个数能不能整除2-这个数

    2024年02月11日
    浏览(45)
  • 冲刺十五届蓝桥杯P0001阶乘求和

    阶乘是蓝桥杯中常考的知识。 首先我们需要知道 int 和long的最大值是多少。 我们可以知道19的阶乘就已经超过了long的最大值,所以让我们直接计算202320232023!的阶乘是不现实的。 所以我们需要突破题目的限制,看透问题。 首先需要知道的一点,n!的末尾想要有0,中间一定

    2024年02月07日
    浏览(38)
  • C语言判断一个数是否是质数的几种常用方法(求100-1000以内的所有质数)

    要用代码判断一个数是否是质数,首先我们需要知道什么什么数称之为质数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。 以下有三种方法判定质数: 通过从2到n-1每个数均整除

    2024年02月08日
    浏览(91)
  • XDOJ例题及答案第七更 计算整数各位数字之和简单程序奖金计算角谷定理阶乘运算阶乘之和阶梯电价计费阶梯电价计算 金字塔打印矩阵矩阵对角线求和矩阵求和累加和校验利率计算 利润计算螺旋填数马鞍点

    目录 计算整数各位数字之和 简单程序 奖金计算 角谷定理 阶乘运算 阶乘之和 阶梯电价计费 阶梯电价计算 金字塔打印 矩阵 矩阵对角线求和 矩阵求和 累加和校验 利率计算 利润计算 螺旋填数 马鞍点

    2024年02月05日
    浏览(100)
  • js几种打印方法的几种方法

    1. 引入插件: 首先,在您的 HTML 文件中引入 printJs 库。可以通过在 head 标签中添加以下代码来引入库文件: 这将从 CDN 加载 printJs 库的 JavaScript 文件和 CSS 文件。 2. 创建打印按钮: 在您的 HTML 文件中创建一个按钮,用于触发打印操作。例如: 3. 添加打印事件监听器: 在您的

    2024年02月13日
    浏览(51)
  • Python安装库的几种方法(使用Pycharm几种方法)

    1.我的Pycharm已经改成中文格式了 首先在Pycharm中进行安装库 进入Python解释器中。 里面搜素需要的库,可能速度很慢,有的库没有,可以采用别的方法。 2. cmd安装库文件 Windows+R进入CMD命令下。 直接输入 pip install *** 就可以了 就是自动安装需要的库。 3.直接使用别人已经安装好

    2024年02月13日
    浏览(45)
  • C 语言函数宏的几种封装方式

    目录 1. 函数宏介绍 2. {} 方式 3. do{...}while(0) 方式 4. ({}) 方式 5. 总结 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。 函数宏本质上为宏,可以直接进行定义,例如: 但上述的宏具有一个

    2024年02月09日
    浏览(48)
  • C语言中内存分配的几种方式

    静态内存分配是在程序编译时分配内存,通常用于 全局变量 和 静态变量 。这些变量的内存空间在程序的整个运行期间都是存在的。 栈内存分配是通过函数调用来分配内存。每当函数被调用时,会在栈中分配一块内存区域用于存储函数的 局部变量 和 函数参数 。当函数执行

    2024年02月10日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包