NYON28大数阶乘

大数阶乘打表 O(N) 亿进制(HDU 1042) 大数阶乘打表 O(N) 亿进制(同理可以实现万亿进制) 10000!时间1s内;20000!时间2s内 放个图先 20000的阶乘(部分) 20000!十进制位数77338位 10000!十进制位数35660位 用__int128可以实现百亿进制甚至更高,可以自己探索,不多赘述 (用Java可以四行代码写出几乎无限制的阶乘。。。) 上代码 /**< 大数阶乘打表 O(N)*/ #inclu... 阅读详情

大数阶乘

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 3
描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0<m<=5000)
输出
输出m的阶乘,并在输出结束之后输入一个换行符
样例输入
50
样例输出
30414093201713378043612608166064768844377641568960512000000000000
解析:在开数组的时候一定要开大一点,我开的小怎么都不能通过,气死我了,,,大数的思路就是把大数存放在数组中,代码如下,两个代码思路都是一样的,一个是从后往前存,一个是从前往后存!
代码1:
# include <stdio.h>
# define N 16400
int main(void)
{
	int i,j,m,a[16401] = {0};
	a[N] = 1;
	scanf("%d", &m);
	for (i = 1; i <= m; i++)
	{
		for (j= N; j >= 1; j--)
		{
			a[j] = a[j] * i;
		}
		for (j = N; j >= 1; j--)
		{
			while (a[j] > 9)
			{
				a[j-1] += a[j]/10;
				a[j] = a[j]%10;
				j--;
			}
		}
	}
	i = 1;
	while (a[i] == 0)
		i++;
	for (j = i; j <= N; j++)
		printf("%d", a[j]);
	printf("\n");
	return 0;
}
代码2:# include <stdio.h>
# define N 19000
int main(void)
{
	int i,j,m,c,s,a[19001] = {0};
	a[1] = 1;
	scanf("%d", &m);
	for (i = 1; i <= m; i++)
	{
		c = 0;
		for (j = 1; j <= N; j++)
		{
			s = a[j] * i + c;
			a[j] = s % 10;
			c = s/10;
		}
	}
	i = N;
	while (a[i] == 0)
		i--;
	for (j = i; j>=1; j--)
		printf("%d",a[j]);
	printf("\n");
	return 0;
}
最优代码:
     
#include<iostream>
02. #include<iomanip>
03. using namespace std;
04. //存储20000以内的阶乘
05. int a[15470];
06. int main()
07. {
08. //freopen("1.txt","r",stdin);
09. //freopen("2.txt","w",stdout);
10. int n;
11. cin>>n;
12. a[1]=1;
13. a[0]=1;
14. int up;
15. for(int i=2;i<=n;++i)
16. {
17. up=0;
18. for(int j=1;j<=a[0];++j)   //各个位相乘
19. {
20. a[j] *=i;
21. a[j] +=up;
22. up=a[j]/100000;
23. a[j] %=100000;
24. }
25. if(up!=0)
26. {
27. a[0]++;
28. a[a[0]]=up;
29. }
30. }
31. if(a[0]==1) cout<<a[1];
32. else
33. {
34. cout<<a[a[0]];
35. for (int i=a[0]-1;i>0;i--)
36. {
37. cout<<setfill('0')<<setw(5)<<a[i];
38. }
39. }
40. }
高精度计算-n的阶乘 问题描述   输入一个正整数n,输出n!的值。   其中n!=1*2*3*…*n。 算法描述   n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。   将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。   首先将a设为1,然后乘2,乘3,当 阅读详情

相关推荐

阶乘的一些规律(编程之美)

问题一: N!末尾有多少个0? 问题二: N!二进制表示中最低位1的位置? 首先来介绍几个要点和规律: n! = n(n - 1)!    (n > 0)  n! = 1 (n = 0)   这里注意不要忘了 问题一等价转化 N! 的质因数中有多少个10 问题二等价转化 N! 的质因数中有多少个2 我们首先介绍一个公式:N! 中一共有多少个素因子

我真的是坑额的博客 3139

题目28:大数阶乘

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入输入一个整数m(0<m≤5000)输出输出每组测试数据中背包内的物品的价值和,每次输出占一行。样例输入50样例输出304140932017133780436126081660647688443776

杨林峰的笔记 544

使用链表进行大数阶乘的计算

使用链表进行大数阶乘的计算。

Jackson的专栏 4916

nyoj24大数阶乘

大数阶乘 时间限制:3000ms | 内存限制:65535KB 难度:3 描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入输入一个整数m(0<m<=5000)输出输出m的阶乘,并在输出结束之后输入一个换行符样例输入 50 样例输出 30414093201713378043612608166...

dianpuding9411的博客 267

单链表实现大数阶乘

单链表通过结构体表示 struct ListNode { int data; ListNode* next; ListNode(int data) { this->data = data; this->next = nullptr; } }; typedef ListNode* List; 大数阶乘的函数 思路:链表的每一个结点存储一个3位数的值,每次从头结点开...

CoderZhuuu 7436

两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)

内容概要:本文介绍了“两路半桥LLC谐振变换器软开关Simulink仿真”资源包,重点在于基于Simulink平台对两路半桥LLC谐振变换器进行高精度建模与动态仿真,特别考虑了谐振参数不一致及分裂电容等非理想工况对系统性能的影响。该仿真模型不仅涵盖了主电路拓扑、软开关实现机制与谐振网络设计,还深入分析了不同参数配置下系统的启动特性、稳态效率、动态响应及软开关条件的满足情况。通过参数扫描与对比仿真,帮助用户掌握LLC变换器的关键设计要素与优化方法,具备较强的工程指导价值和科研教学意义。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频开关电源、新能源变换器、车载充电机等领域的研发工程师和技术人员。; 使用场景及目标:① 掌握两路并联半桥LLC谐振变换器的建模与仿真方法;② 理解软开关技术在提升变换器效率与降低EMI方面的关键作用;③ 分析谐振参数偏差与分裂电容结构对系统均流特性、增益曲线及软开关范围的影响;④ 支持科研项目中的拓扑验证、控制策略开发与故障工况分析; 阅读建议:建议结合Simulink仿真模型与配套说明文档进行学习,重点关注谐振腔参数设置、驱动时序设计及软开关波形观测;可通过调整谐振电感、电容值或引入参数失配,观察系统行为变化,深入理解LLC变换器的稳定边界与优化设计原则。

2W阶乘秒求

/* 1*2*3*4*5*6*7*8*9 char a[1000000]; */ int num_len = 1; int a[1000000]; a[1] = 1; int tmp = 0; int len = 9 + 1;//阶乘的长度9+1 for (int i = 2; i < len + 1; ++i)//要求几次乘法 { for (int j =...

weixin_42465002的博客 380

双向全桥CLLC谐振变换器仿真模型(Simulink仿真实现)

内容概要:本文系统介绍了双向全桥CLLC谐振变换器的Simulink仿真模型,重点阐述了变频控制、闭环仿真及其与多种电力电子拓扑(如维也纳整流器、DAB变换器、图腾柱PFC等)的联合仿真设计。资源包涵盖2.5kW双向全桥LLC、V2G电动汽车充放电系统、三相PFC、多相交错LLC等多种变换器的仿真案例,并深入展示了三电平VIENNA整流器在双闭环PI控制与SVPWM调制策略下,结合上下电容电压差值补偿实现中点电位平衡的先进控制方法。通过仿真验证,该策略不仅有效维持了800V直流母线电压的稳定,还在动态工况下显著提升了电容电压的均衡度,同时保持了较低的输入电流THD,充分体现了SVPWM与中点平衡控制协同优化的技术优势。; 适合人群:具备电力电子与自动控制理论基础,从事新能源发电、电动汽车、工业电源、微电网等领域的研究生、工程师及科研人员。; 使用场景及目标:① 学习并构建高频谐振变换器(如LLC、CLLC)的Simulink仿真模型,掌握其变频与混合控制策略;② 深入理解并应用中点电位平衡、双闭环PI控制、SVPWM调制等核心技术于VIENNA等三电平变换器中;③ 复现高水平期刊论文中的控制算法,服务于科研项目申报、学术论文撰写或工程产品开发。; 阅读建议:该资源为综合性仿真资料库,建议使用者结合自身研究方向(如电动汽车充电、新能源并网)选择对应案例进行精学,重点关注控制策略的设计逻辑、仿真参数的整定方法以及SVPWM与中点平衡的协同机制,并充分利用附带的计算书和参考文献深化理解,以实现从仿真模型到实际工程应用的顺利转化。

大数阶乘(C++实现)

由于int型或long型的长度有限,对于超出长度范围的数据无法储存,微软计算器计算20000!时发生溢出。 通过动态开辟数组,使用数组进行大数阶乘,计算的结果与微软计算器计算的结果一致,20000!的计算时间约9秒(包含结果的输出时间),理论上可以计算100000以内的阶乘。

Lianj.Qin 2109

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)

10-Oracle 23 ai Vector Search 概述和参数

企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation :RAG)功能,RAG能够将LLM的生成能力与知识库的精准资料库进行检索结合,将大模型部署在内部同时将私有的数据进行LLM的检索避免泄露企业专用的数据同时提高的准确性。于是如何将数据存入向量数据库以及向量查询等这些基本功能变得必备和重要。

远方的专栏 1296

大整数的阶层

#include"stdio.h" #include"string.h" #include int main() { char n[10]; int a[20000]={0},b[20000]={0},c[20000]={0},temp; int i,j,k,len;          printf("请输入阶乘数:"); scanf("%s",&n); /*下面以b为乘数,a

huangting0117的专栏 863

【深度学习】肺结节分割项目实战一:处理数据集

一、LIDC-IDRI数据集简介 官方网站 肺图像数据库协会的图像收集(LIDC-IDRI)包括诊断和带有病变注释标记的肺癌筛查胸部CT。这是一个网络公开的国际资源,用于肺癌检测和诊断的计算机辅助诊断(CAD)方法的开发、培训和评估。 数据集包含1018个病例,每个病例包括来自临床胸部CT扫描的图像和一个相关的XML文件,该文件记录了由四名经验丰富的胸部放射科医生进行的两阶段图像注释过程的结果。在最初的盲读阶段,每个放射科医生独立审查每个CT扫描,并标记出属于三种类型之一的病变(“结节>= 3mm”,

weixin_42182906的博客 1万+

10000的阶乘是多少

我们首先要明确123*9如何算? 3*9=27,进位2,数值为7 2*9=18,18+进位2=20, 故进位2,数值0 1*9=9,9+2=11,数值11 故答案为1107

k的博客 3202

Excel基金净值自动更新:手把手教你用Power Query抓取天天基金网数据(含常见错误修复)

本文详细介绍了如何利用Excel内置的Power Query工具,从天天基金网自动抓取基金净值数据,实现表格数据的自动刷新。通过手把手教程,您将学会构建参数化查询、整合多基金数据、计算持仓盈亏,并解决网页结构变动等常见错误,最终打造一个专属的、可自动更新的基金监控仪表盘,彻底告别手动更新。

xx56789的博客 730

昇腾Atlas Duo 300I推理卡实战:从零部署Qwen大模型推理服务

本文详细记录了在华为昇腾Atlas Duo 300I推理卡上,从零部署Qwen1.5-14B-Chat大模型推理服务的完整实战过程。涵盖环境准备、MindIE容器配置、CANN工具链安装、服务启动与API测试等关键步骤,并分享了性能观察与排错经验,为国产AI算力平台部署LLM推理服务提供了实用指南。

weixin_29084231的博客 1247

大数阶乘(数组处理)

1.问题描述: 当控制台输入比较大的数字的时候求出n的阶乘,并且 1&lt;= n &lt;= 5000,请在控制台输出n!的结果 2. 思路分析: ① 首先从题目中可以看到n是比较大的数字,我们知道当n小于20的时候这个阶乘已经非常大了,当再进行计算比20大的时候可能Long的数据类型已经无法保存其中的结果了,Long类型的数据最大能够保存的数字为9223372036854775...

二哈 3506

LoFTR训练避坑指南:从零到一复现论文训练流程

本文是一份详细的LoFTR模型训练避坑指南,旨在帮助开发者从零开始复现论文训练流程。文章系统性地讲解了环境配置、数据准备、代码调试与显存优化等关键步骤,并针对常见的训练错误提供了解决方案,确保训练过程顺利进行。

weixin_29091837的博客 204

c语言大数阶乘0有几位,大数阶乘C语言,可计算20000!

该楼层疑似违规已被系统折叠隐藏此楼查看此楼/********************************************************************************** 文件名:fac.c**文件功能:计算大数的阶乘,最大可计算20000.**文件作者:**文件日期:********************************************...

weixin_32700139的博客 388

告别夜间噪点!用瑞芯微RV1126B的AI-ISP,手把手教你打造0.01Lux超低光摄像头

本文详细介绍了如何利用瑞芯微RV1126B芯片的AI-ISP技术,打造0.01Lux超低光摄像头,解决夜间噪点问题。通过AI算法与图像信号处理的深度融合,RV1126B的3TOPS边缘算力实现了像素级AI降噪和语义感知增强,显著提升低光环境下的图像质量。文章包含硬件选型、软件配置和实战调优指南,助力开发者在AIoT领域实现高性能视觉应用。

weixin_33725722的博客 565

【时时三省】vector cast 常见错误解决/vcast常见错误解决

介绍在使用 vector cast/vcast 软件的过程中,遇到的异常问题。其它异常可以私信解决(购买专栏的前提下)。

时时三省的博客 451

阶乘的精确值 大数据存放

对于不超过1000的数,用于计算其的阶乘

XD_122 847

Cesium 相机操作

Cesium 提供了三种方式对相机的位置进行摆放。

虎康的博客 2594

C语言:求n的阶乘/求1!+2!+.....+n!

       首先求n的阶乘,我们先要产生1-n的数字,然后累乘起来,利用for循环来实现。       所以求n的阶乘的具体代码如下:#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { int i = 0; int n = 0; int ret = 1; scanf_s("%d", &amp;n);//输入n ...

ETalien_的博客 3万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大数阶乘的计算(五)

很难想象只要改动几句代码就可以大幅提高执行的效率,在前几篇文章中我写了几种大数阶乘的算法(http://www.youkuaiyun.com/Develop/read_article.asp?id=28306,http://www.youkuaiyun.com/Develop/read_article.asp?id=28308,http://www.youkuaiyun.com/Develop/read_article.asp?id

northwolves[狼行天下] 的专栏 2254

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【Java例题】1.1计算n的阶乘

1 package study; 2 import java.util.*; 3 import java.math.*; 4 5 public class myClass { 6 public static void main(String[] args){ 7 System.out.println("请输入x的值"); 8 ...

weixin_33913377的博客 811

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: NYOJ 995 硬币找零
下一篇: NYOJ221Tree
java_oracle_c
博客等级 码龄13年 2粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值