(c语言1)阶乘求和

news2024/9/20 22:57:03

输入格式

求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。

输入格式

n

输出格式

Sn的值

样例输入

5

样例输出

153

题解

然后直接先上题解

#include<stdio.h>
int main()
{
    int n,a=1;
    long long sum=0,m=1; //为这是阶乘求和,一般的int 类型可能就不够,因此我们利用long long int 类型
    scanf("%d",&n); //输入需要乘到多少的阶乘
    for(a=1;a<=n;a++) //利用循环加1
    {
        m=a*m;  //一个循环利用上一个阶乘的结果加1直接乘
        sum=sum+m; //阶乘求和
    }
    printf("%lld",sum); //输出和
	return 0;
}

分析

前面的int一般就是拿来控制循环的,定量n就是为了scanf的输入。

我们先来讲一下这个循环,

for(a=1;a<=n;a++)
    {
        m=a*m;
        sum=sum+m;
    }

我们一开始已经定义了a的值和输出了n的值

这个循环就是为了让它m的值可以一直乘(a++),就可以达到阶乘的效果。 

sum也在循环里,因此每循环一次就可以实现加上上一个数的和

直到a与n的值相同,就刚好实现阶乘总和后退出循环

前面之所以使用 

long long sum=0,m=1;

是因为我相信很多童鞋一开始也是想使用简单的用“%d"来输出sum

但是结果是

 很显然哈,前面的测试点能过,而后面的过不了,很多童鞋就大概就猜到是后面的输出有问题。

突然想到n如果等于20,那这个值肯定非常大

long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808

所以我一开始就只把sum用 long long 来定义

但是结果如上,还是相同的报错,又看到有个m,自然m的值肯定也是相当大的

所以 sum 和 m 我都用了 long long 来定义

最后这个输出

printf("%lld",sum);

注意哈,用了 long long 来定义,这个输出的”%lld",里面不是数字11哈,是L的小写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第五十三章 Unity 移动平台输入(上)

在移动设备上&#xff0c;Input 类提供对触摸屏、加速度计和地理/位置输入的访问。这里我们简单介绍Input类对于触摸屏的支持。Input.Touches是一个触摸数组&#xff0c;每个数组元素代表着手指在屏幕上的触碰状态Input.Touch。Input.Touch 数据结构表示&#xff1a; fingerId…

带你了解新兴安全技术

随着科技的不断发展&#xff0c;生物识别技术已经成为了一种重要的安全技术。生物识别技术可以通过对个人身份的验证和认证来防止身份盗窃和其他形式的安全威胁&#xff0c;因此越来越多的组织和企业开始使用这种技术来提高安全性。随着科技的不断发展&#xff0c;生物识别技术…

CTFHub-Git泄露-Log

前言 git是一个版本控制工具&#xff0c;通过泄露的.git文件可还原代码 题目如下 wp 1. dirsearch目录扫描 发现存在git泄露&#xff0c;根据提示下载对应git利用工具GitHack&#xff0c;这个工具的特点是能还原历史版本 2. 使用工具下载源码 tips: 最好在linux中操作&…

springboot社区物业管理系统

分享一个springboot社区物业管理系统&#xff0c;需要的私信 项目简介 本系统涉及到的技术主要如下 推荐环境配置&#xff1a;eclipse/idea jdk1.8 maven mysq 前端技术&#xff1a;Layui&#xff0c;Ajax&#xff0c;Json 后端技术&#xff1a;SpringBoot 2.3.0&#xff0c;…

day4-字符设备驱动基础上_基础框架

大纲&#xff1a; 设备分类 申请和注销设备号 函数指针复习 注册字符设备 字符设备驱动框架解析 读操作实现 写操作实现 ioctl操作实现 printk 多个次设备的支持 一、Linux内核对设备的分类 linux的文件种类&#xff1a; -&#xff1a;普通文件 (文件内容、文件名、…

HashMap 的 7 种遍历方式与性能分析

随着 JDK 1.8 Streams API 的发布&#xff0c;使得 HashMap 拥有了更多的遍历的方式&#xff0c;但应该选择那种遍历方式&#xff1f;反而成了一个问题。 本文先从 HashMap 的遍历方法讲起&#xff0c;然后再从性能、原理以及安全性等方面&#xff0c;来分析 HashMap 各种遍历…

C++实践模拟(vector list,反向迭代器)

vector与list的模拟实现&#xff0c;主要是在实现过程中体会模板在编程中的应用&#xff0c;了解C中迭代器的底层实现机制&#xff0c;因此笔者会将重点内容放在模板应用&#xff0c;迭代器底层实现&#xff0c;反向迭代器&#xff0c;迭代器失效等方面&#xff0c;至于其他的增…

Webpack5构建性能优化:构建耗时从150s到60s再到10s | 京东云技术团队

作者&#xff1a;京东科技 牛志伟 近期对Webpack5构建性能进行了优化&#xff0c;构建耗时从150s到60s再到10s&#xff0c;下面详细讲解下优化过程。 优化前现状 1.历史项目基于Vue3 Webpack5技术栈&#xff0c;其中webpack配置项由开发者自己维护&#xff08;没有使用vue/…

有哪些入耳舒服的蓝牙耳机?公认佩戴舒适度最高蓝牙耳机

数码科技市场日益发展的更加智能化&#xff0c;日常所接触到的各类产品都开始往智能化发展&#xff0c;鲜为人知的蓝牙耳机一直是不过时的&#xff0c;因为小巧易携带深受大众喜欢&#xff0c;下面整理了几款佩戴舒适的蓝牙耳机给大家。 一、南卡小音舱Lite2蓝牙耳机 售价&am…

java语法(一)基本概念、数据类型、字符串类、集合、Stream流、异常处理、文件处理IO流

文章目录 java程序运行流程JDK、JRE、JVM的关系 java数据类型基本数据类型基本数据类型之间的转换 引用数据类型数组类Java Bean重写 equals和hashcode 接口接口与类之间的关系 内置包装类装箱和拆箱包装类的应用Object类toString()equals()方法getClass() 方法接收任意引用类型…

QT如何打包生成独立可执行.exe文件

一、将QT程序使用Release编译 二、新建一个文件夹&#xff0c;将Release编译生成的exe文件复制到新建文件夹中 先找到Release编译生成的exe文件夹位置&#xff0c;与项目创建的文件夹有关&#xff1a; 临时文件夹 --》 release --》 xx .exe文件 比如我的这个就是在D:\QtPro\b…

vulnhub-RAVEN:2(MYSQL-UDF提权,手工提权/工具自动提权)

镜像下载&#xff1a;Raven: 2 ~ VulnHub 实验环境&#xff1a;kali&#xff1a;192.168.78.128 vulnhub镜像&#xff1a;192.168.78.133 1、kali查看本地ip地址&#xff0c;以便使用nmap扫描ip段存活主机 2、nmap扫描IP段&#xff0c;发现靶机的IP地址为192.168.78.133 4、访问…

十款常用的Jupyter Notebook Extensions插件

Table of Contents&#xff1a;一款可以在笔记本左侧生成目录树的插件。它可以让你快速导航到不同的章节&#xff0c;也可以折叠和展开各级标题。Codefolding&#xff1a;一款可以折叠代码块的插件。它可以让你隐藏不需要查看的代码&#xff0c;只显示关键的部分&#xff0c;提…

【Linux】Linux的文件操作

文件操作对于不少编程初学者来说都是一件头疼的事情&#xff0c;不管你学习的是什么编程语言&#xff0c;C/C/Java/Go/Python ,因为我们学习到的文件相关的操作对你来说都是一个黑盒&#xff0c;我们只是知道我们应该怎么使用相应的文件函数进行操作&#xff0c;而对于内部的实…

Linux线程同步(2)——初识互斥锁

互斥锁&#xff08;mutex&#xff09;又叫互斥量&#xff0c;从本质上说是一把锁&#xff0c;在访问共享资源之前对互斥锁进行上锁&#xff0c;在访问完成后释放互斥锁&#xff08;解锁&#xff09;&#xff1b;对互斥锁进行上锁之后&#xff0c;任何其它试图再次对互斥锁进行加…

C语言:青蛙跳台与汉诺塔问题

青蛙跳台 原理&#xff1a;一只青蛙跳n个台阶&#xff0c;青蛙可以一次性跳1个台阶&#xff0c;也可以跳2个台阶&#xff0c;问&#xff0c;有多少种跳法&#xff0c;可以跳过n个台阶。 分析&#xff1a;青蛙跳台本质上是递归问题&#xff0c;那它为什么是递归问题呢&#xff…

cleanmymac在哪下载?中文官网安装教程

CleanMyMac是一个系统清理工具&#xff0c;删除系统缓存文件 , 多余的应用程序语言包 , PowerPc软件运行库等。 是个给你的硬盘瘦身的好工具。 系统&#xff1a;macOS 10.14&#xff08;在10.15以及Big Sur中的安装激活教程相同&#xff09;登录CleanMyMac X下载页面&#xff0…

第十四章_缓存双写一致性之更新策略探讨

缓存双写一致性的理解 如果redis中有数据 需要和数据库中的值相同 如果redis中无数据 数据库中的值要是最新值&#xff0c;且准备回写redis 缓存按照操作来分&#xff0c;细分2种 只读缓存 读写缓存 同步直写策略 写数据库后也同步写redis缓存&#xff0c;缓存和数据库…

01:mysql基本操作---DDL

目录 前言: 1:SQL分类 2:类型 3:sql表的创建----简单版本 前言: 1:SQL语句可以单行或多行书写&#xff0c;以分号结尾。 2:SQL语句可以使用空格/缩进来增强语句的可读性。 3:MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写 4:注释: 单行注释:-- 注释…

RabbitMQ详解(三):消息模式(fanout、direct、topic、work)

消费模式 参考官网&#xff1a;https://www.rabbitmq.com/getstarted.html 简单模式 Simple, 参考RabbitMQ详解&#xff08;二&#xff09;&#xff1a;消息模式 Simple(简单)模式 简单模式是最简单的消息模式&#xff0c;它包含一个生产者、一个消费者和一个队列。生产者向队…