当前位置: 首页 > article >正文

[蓝桥杯]阶乘求值【省模拟赛】

问题描述

给定 nn,求 n!n! 除以 10000000071000000007 的余数。

其中 n!n! 表示 nn 的阶乘,值为从 11 连乘到 nn 的积,即 n!=1×2×3×…×nn!=1×2×3×…×n。

输入格式

输入一行包含一个整数 nn。

输出格式

输出一行,包含一个整数,表示答案。

样例输入

3

样例输出

6

样例输入

7

样例输出

992

评测用例规模与约定

对于 30% 的评测用例,1≤n≤121≤n≤12。

对于 60% 的评测用例,1≤n≤10001≤n≤1000。

对于所有评测用例,1≤n≤10000001≤n≤1000000。

运行限制

语言最大运行时间最大运行内存
C++1s256M
C1s256M
Java2s256M
Python33s256M
PyPy33s256M
Go3s256M
JavaScript3s256M

总通过次数: 1801  |  总提交次数: 2084  |  通过率: 86.4%

代码部分:

#include <iostream>
using namespace std;const long long MOD = 1000000007;int main() {int n;cin >> n;  // 输入整数nlong long result = 1;  // 初始化结果为1(0! = 1)// 循环计算阶乘,每一步取模for (int i = 1; i <= n; i++) {result = (result * i) % MOD;}cout << result << endl;  // 输出结果return 0;
}

代码说明:

  1. 输入处理:程序读取一个整数 n

  2. 初始化结果result 初始化为1,因为0的阶乘是1(虽然题目保证n≥1,但初始化仍考虑通用性)。

  3. 循环计算

    • 使用 for 循环从1乘到n。

    • 每一步乘法后立即对 1000000007 取模,防止结果溢出。

  4. 输出结果:最终计算出的 result 即为n! mod 1000000007。

注意事项:

  • 时间复杂度:O(n),对于n=1000000,在现代计算机上可在1秒内完成。

  • 空间复杂度:O(1),仅使用常数额外空间。

  • 数据类型:使用 long long 存储结果,确保中间乘法结果(最大约1e15)不会溢出。

  • 模数选择:严格按题目要求使用模数 1000000007

http://www.lryc.cn/news/2397088.html

相关文章:

  • 鸿蒙OSUniApp微服务架构实践:从设计到鸿蒙部署#三方框架 #Uniapp
  • Rust 编程实现猜数字游戏
  • 关于神经网络中的激活函数
  • CentOS_7.9 2U物理服务器上部署系统简易操作步骤
  • 第十三篇:MySQL 运维自动化与可观测性建设实践指南
  • 短视频平台差异视角下开源AI智能名片链动2+1模式S2B2C商城小程序的适配性研究——以抖音与快手为例
  • HTTP 如何升级成 HTTPS
  • 【笔记】Windows 下载并安装 ChromeDriver
  • Spark-Core Project
  • SQL 中的 `CASE WHEN` 如何使用?
  • Wireshark 使用教程:让抓包不再神秘
  • JWT安全:接收无签名令牌.【签名算法设置为none绕过验证】
  • 什么算得到?什么又算失去?
  • 白银价格查询接口如何用Java进行调用?
  • FreeBSD 14.3 候选版本附带 Docker 镜像和关键修复
  • NodeJS全栈WEB3面试题——P6安全与最佳实践
  • 「Java教案」算术运算符与表达式
  • Ubuntu开机黑屏现象的常见解决方案详解
  • 黑马程序员C++核心编程笔记--4 类和对象--多态
  • 论文写作核心要点
  • [java]eclipse中windowbuilder插件在线安装
  • Ubuntu20.04服务器开启路由转发让局域网内其他电脑通过该服务器连接外网
  • 【Oracle】TCL语言
  • Windows | 总误按Num Lock?修改注册表永久禁用Numlk键使小键盘一直输入数字
  • 2.RV1126-OPENCV Mat理解和AT函数
  • Go 语言 + Word 文档模板:WordZero 引擎如何让企业文档处理效率提升 300%?
  • unidbg patch 初探 微博deviceId 案例
  • 循序渐进 Android Binder(一):IPC 基本概念和 AIDL 跨进程通信的简单实例
  • 网络安全之Web渗透加解密
  • Leetcode 3567. Minimum Absolute Difference in Sliding Submatrix