N的阶乘(高精度)

news/2024/10/18 12:20:57/

目录

题目描述

输入格式

输出格式

样例输入

样例输出

思路

参考代码


题目描述

输入正整数n,输出n!

输入格式

一个正整数n,n \leq 3000

输出格式

输出n!

样例输入

3

样例输出

9

思路

主要就是高精度乘法的模版,第一层循环遍历1~n,第二层遍历整个a数组,然后就是计算阶乘,也是最为核心的一部分。

            a[j] = a[j] * i + c; // 按位计算乘积也就是模拟竖式计算c = a[j] / 10; // c变量代表进位,这里计算进位a[j] %= 10; // 每一位要减去进位,只留下一位数

参考代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;const int N = 3 * 1e3 + 5; int a[N] = {0};int main()
{a[1] = 1;int n, c = 0;cin >> n;for (int i = 2; i <= n; i++){for (int j = 1; j <= 3000; j++){a[j] = a[j] * i + c;c = a[j] / 10;a[j] %= 10;}}int i = N - 1;while(a[i] == 0)i--;for(; i >= 1; i--)cout << a[i];return 0;
}

制作不易,点个关注+收藏+赞!


http://www.ppmy.cn/news/1466221.html

相关文章

使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用

使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用。 使用 pm2 pm2 是一个用于 Node.js 应用的进程管理工具&#xff0c;提供了守护进程、日志管理和应用重启等功能。 安装 pm2&#xff1a; npm install pm2 -g启动你的 Node.js 应用&#xff1a; pm2 start se…

智慧景区ar导览系统景区手绘地图小程序开发搭建

智慧景区AR导览系统和小程序手绘地图的开发搭建需要考虑多个方面。 1. 技术团队和工具&#xff1a;需要组建一支技术实力强大的开发团队&#xff0c;包括前端开发、后端开发、数据库设计、AR技术应用等人员。选择合适的开发工具&#xff0c;如小程序框架、AR技术框架、云服务等…

数据赋能(107)——体系:数据采集——概述、关注焦点

概述 数据采集是指利用特定设备或技术&#xff0c;从原始数据源中捕获和记录数据的过程。 数据采集的主要目的是为了获取特定目标或现象的相关信息&#xff0c;以支持后续的数据分析、决策制定、业务优化等过程。 数据采集的重要性在于为企业和组织提供了关键的信息基础&…

Java为什么会成为现在主流的编程语言

Java为什么会成为现在的主流语言 前言一、Java语言概述Java是什么为什么大多数人会选择从事Java为什么从事Java的工作者数量从年递减 二、Java语言的特点简单性面向对象分布式&#xff08;微服务&#xff09;健壮性安全性体系结构中立可移植性解释型高性能多线程动态性 三、Jav…

WIN系统 -> 以太网未识别的网络问题

1.方法1 2. 3. 根据诊断提示解决问题。 方法2. 右键以太网属性

罗德里格斯旋转公式证明-简洁

罗德里格斯旋转公式证明。 设旋转向量为 ( n , θ ) (n, \theta) (n,θ)&#xff0c;设其对应的旋转矩阵为 R R R&#xff0c; 如何证明&#xff1f; R c o s θ I n ∧ s i n θ ( 1 − c o s θ ) n n T Rcos\theta I n^{\wedge}sin\theta(1-cos\theta)nn^{T} RcosθI…

Linux系统维护

1. 批量安装部署 2. 初始化配置 3. 禁用Selinux 永久更改 SELinux 配置&#xff1a; 编辑 SELinux 配置文件&#xff1a;使用文本编辑器打开 /etc/selinux/config 文件&#xff1a; 在配置文件中&#xff0c;找到 SELINUX… 的行。将其值更改为以下选项之一&#xff1a; e…

python练习五

Title1&#xff1a;请实现一个装饰器&#xff0c;每次调用函数时&#xff0c;将函数名字以及调用此函数的时间点写入文件中 代码&#xff1a; import time time time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 获取当前的时间戳 # 定义一个有参装饰器来实…