首页 > 其他分享 >计算1!+2!+3!+.....n!

计算1!+2!+3!+.....n!

时间:2024-09-13 16:52:54浏览次数:3  
标签:int scanf 循环 result 计算 printf 阶乘 +.....

方法1

#include <stdio.h>
int main()		
{
	int n;
	printf("请输入n:");
	scanf("%d", &n);
	int result = 1;
	int sum = 0;
	int i = 0;
	for(i=1;i<=n;i++)
	{
		result = result * i;    //这一步就是阶乘
		sum = sum + result;     //这一步就是加法
	}
	printf("1!+2!+....%d!=%d", n, sum);
}

方法2

for循环内嵌while循环

#include <stdio.h>
int main()
{
	int n;
	printf("请输入n:");
	scanf("%d", &n);

	int i = 0;
	int j = 0;
	int result = 1;
	int sum = 0;
    //输入及初始化

	for (i = 1; i <= n; i++)    //计算阶乘
	{
		result = result * i;
		j = 0;           
		while (j < 1)    //做一次加法
        //上面的j=0,是为了确保做加法之前j=0,否则一次while循环之后j就等于1,以后不会进入while循环
		{
			sum = sum + result;
			j++;        //用于跳出while循环
		}
	}
	printf("1!+2!+....%d!=%d", n, sum);
}

不看内层的j=0和while循环,那么for循环就是一个简单的计算n的阶乘。为了求和,就在得到n的阶乘之后立即做一次加法

方法3

for循环嵌套

#include <stdio.h>
int main()		
{
	int n;
	printf("请输入n:");
	scanf("%d", &n);

	int i = 0;
	int j = 0;
	int result = 1;
    //输入和初始化

	int sum = 0;
	for (i = 1; i <= n; i++)
	{
		result = 1;//内循环要重新算阶乘,但是第二次result不是从1开始,而是保留了算上一个阶乘的值,因此要在循环前重新赋值
		for (j = 1; j <= i; j++)
		{
			result = result * j;
		}
		sum = sum + result;
	}
	printf("1!+2!+....%d!=%d", n, sum);
}

外层循环做加法,内层循环计算阶乘。这种效率低

标签:int,scanf,循环,result,计算,printf,阶乘,+.....
From: https://blog.csdn.net/Xiejianghao_/article/details/142179859

相关文章

  • 【生产力必备工具】GPU加速计算的首选云服务——蓝耘GPU(点击我的链接注册登录,可获50使
    点击下面我的链接注册并登录,可获50使用卷:https://cloud.lanyun.net/#/registerPage?promoterCode=11f606c51ehttps://cloud.lanyun.net/#/registerPage?promoterCode=11f606c51e获得广泛丰富的NVIDIA高端GPU选择。高可配置高可用,专为大规模GPU加速工作负载而构建,按需提供。核......
  • 基于Node.js+vue职位智能匹配系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网应用的普及,人才招聘市场迎来了前所未有的变革。传统的人才招聘方式往往效率低下,信息不对称,导致求职者难以快速找到合适的工......
  • 基于Node.js+vue基于Springbootvue的教学辅助系统设计与实现(开题+程序+论文) 计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在教育领域,随着信息技术的飞速发展,传统教学模式正逐步向数字化、智能化转型。传统的教学辅助工具已难以满足现代教育的需求,尤其是在提升教学效率、增强师生......
  • 基于Node.js+vue在线拍卖系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和电子商务的普及,在线拍卖作为一种高效、便捷的交易方式,逐渐成为消费者和商家青睐的交易平台。传统拍卖受限于地域、时间等因素,难......
  • 基于Node.js+vue基于JS的租房网站(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人口流动的日益频繁,租房需求持续增长,成为现代都市生活中不可或缺的一部分。然而,传统的租房方式往往依赖于中介或线下看房,不仅效率低......
  • 基于JAVA办公自动化系统的计算机毕设
    摘  要极光办公自动化系统是针对南开创元信息技术有限公司开发的,专门用于企业内部员工信息交流的软件,其开发过程主要包括前端应用程序的开发和后端数据库的建立两个方面。对于前者要求应用程序功能完备操作简单,对于后者要求建立起数据一致性、完整性和安全性好的数据库。本论......
  • 视频数据量怎么计算需要多少带宽
    视频数据量的计算以及所需带宽的估算涉及多个因素。以下是计算视频数据量和估算所需带宽的一般步骤:视频数据量计算确定视频参数:分辨率:视频的宽度和高度,例如1920x1080。帧率:每秒显示的帧数,例如30fps(帧每秒)。像素深度:每个像素使用的位数,例如24位(RGB各8位)。视频时长:视频的长度,以秒或分......
  • springboot大学生创新基金项目信息管理系统-计算机毕业设计源码90501
    摘 要本研究旨在利用SpringBoot框架设计并实现大学生创新基金项目信息管理系统,涵盖项目信息管理、申请信息管理、申请撤销管理、资金申请管理和资金撤销管理等功能模块。通过对大学生创新项目管理需求的深入分析,系统旨在提高管理效率和透明度。利用SpringBoot框架的快速......
  • django特定地区冷链物流信息调度系统-计算机毕业设计源码92919
    特定地区冷链物流信息调度系统研究与应用摘要本研究针对特定地区的冷链物流信息调度系统进行了深入探索与实践。冷链物流作为一种特殊的物流方式,对于保障食品、药品等易腐产品的新鲜度和质量至关重要。然而,在特定地区,由于地理环境、经济水平和物流资源的限制,冷链物流面临着......
  • springboot JZ车行系统-计算机毕业设计源码93812
    目 录摘 要1绪论1.1研究背景与意义1.2开发现状1.3论文结构与章节安排2 系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 系统用例分析2.4......