HDU1042 N! 万进制

【C语言->数据结构与算法】->巨大数的加减乘->万进制的运用及神奇的微易码补码 Ⅰ 巨大数的概念 所谓巨大数,就是字面意思所指的非常大的数,大到C语言中无法表示出来,更不能计算。 Ⅱ 巨大数的意义 IT界有一个著名的问题,千年虫问题。 计算机2000年问题,又叫做“千年虫”、“电脑千禧年千年虫问题”或“千年危机”。缩写为“Y2K”。是指在某些使用了计算机程序的智能系统(包括计算机系统、自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,因此当系统进行(或涉及到)跨世... 阅读详情

        表示刚开始了无思路!后来看了下讨论,发现了"万进制"。觉得奇妙,记下吧。

        这题也让我有了点想法。我们经常用的进制就是2进制、8进制、10进制和16进制。何来“万进制”?世上本无,有人喊了也就有了。呵呵

        现在来谈谈自己对进制的一点不成熟的想法。计算机能“识别”0和1,人能识别0、1、2、3、4、5、6、7、8、9以及其多位组合。那么,

  为啥就单单有2、8、10、16这几个进制。我想并不止这几个,10进制是我们日常生活沿用来了的,难道来个5进制就不行?当然不是,不过

  一切以方便优先罢了!2进制是因为方便计算机识别才兴起的,5000年前应该不会有2进制!8进制和16进制又因何2进制有天然联系,所以

  也出现了用途,2^3=8、2^4=16(例:这在《数字逻辑》中关于编码方面有相关应用)。

         就题论题。再来谈谈1042的万进制。也以一个例子来说明:

         107924372*15=1618865580。

         ①上面的乘法如果运用10进制,很简单。

         ②万进制呢?

               首先存数:a[0]=4372,a[1]=792,a[2]=1。107924372,从低位到高位每四位存到一个数组元素中。此时,总位数为3。

               接着运算:a[0]*15=65580,所以进位为a[0]/10000=6,a[0]=a[0]%10000=5580。a[1]*15=11880,a[1]=a[1]+6=11886。

                                 进位为1,a[1]=1886。a[2]*15=15,a[2]=a[2]+1=16,进位为0。

               输出:a[2],a[1],a[0]即为1618865580。要注意的是:如果a[2]=886,那么该如何输出?直接输出:168865580。显然不对,

                          正确的是16088655880。输出的原则是:最高位原样输出,其它位如果小于1000,则高位补0,一位一补。

 

          好了,不啰嗦了。AC代码:

/*万进制*/
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	void factorial(int n);  //阶乘函数

	int n;

	while(cin>>n)
		factorial(n);
	
	return 0;
}

void factorial(int n)
{
	int a[10001];  
	int places,carry,i,j;

	a[0]=1;
	places=0;   //当前数的总位数
	for(i=1;i<=n;i++)
	{
		carry=0;   //进位

		for(j=0;j<=places;j++)
		{
			a[j]=a[j]*i+carry;
			carry=a[j]/10000;
			a[j]%=10000;
		}

		if(carry>0)  //如果一个数的总前一位大于一万,则向前进位
		{
			places++;
			a[places]=carry;
		}
	}	

	/*
	  输出
	  最高位原样输出,
	  其他位小于1000的,高位补0
	*/
	cout<<a[places];
	for(i=places-1;i>=0;i--)
		cout<<setw(4)<<setfill('0')<<a[i];

	cout<<endl;
}

 

 


 

大数乘——“万进制” 网上看到了一种“万进制”的思路,时间、空间上都能节省。 这种思路就是充分利用int类型所能存数的范围,如果之前写大数乘,我是将每一位放在int数组的每个元素,比如:174596332,放在数组中为 int a[] = {1,7,4,5,6,3,3,2} ; 然后拿数组每个元素从低位到高位乘另一个数,处理进位。 “万进制”不以一位(十进制)分割数了,而是4位,那么上面的数在数组中就可以存为:int ... 阅读详情

相关推荐

简单万进制高精度源代码

C++高精度源码,给大家瞧瞧。不过这可是万进制的哦!运行起来会快得多。 呃……我是菜鸟,也就能发这些了(给菜鸟同行们看看)。望多多指教。

什么是万进制?

什么是万进制? 今天在写数论的大数的时候。在练习java。后来发现大数也可以采用万进制解决。 什么是万进制。 万进制和二进制啊,八进制,十进制,十六进制等差不多。 举个例子: 我们计算107223432 * 14的式子; 十进制计算起来很简单。 看看万进制的式子: 我们万进制存储在数组中,每个数组存四位。从低位开始存起。 1.存数 a[0] = 3432; a[1] = 0722 = 722;...

qq_44624316的博客 2559

激光三角测量法:斜射与直射式技术的原理与应用解析

本文深入解析激光三角测量法中斜射式与直射式技术的原理、应用及对比。斜射式适用于高精度小范围测量,尤其擅长处理反光表面;直射式则适合大范围位移检测,结构更简单。文章详细介绍了两种技术的光路分析、数学建模、应用场景及选型建议,并探讨了系统校准与误差分析方法,为工业检测领域提供实用参考。

weixin_29280219的博客 415

巨大数实现

神奇的万进制和微易码反码

weixin_45483328的博客 1080

Simulink与C/C++的无缝对接:自定义结构体变量导入实战指南

本文详细介绍了如何将C/C++自定义结构体导入Simulink环境,实现无缝数据对接。通过编写标准C头文件、配置MEX编译环境(如MinGW),并利用`Simulink.importExternalCTypes`函数,可将结构体转换为Simulink Bus对象,从而提升复杂系统模型的可读性、可维护性及仿真与代码生成效率。

weixin_29093017的博客 485

AI 与新媒体

AI重构新媒体生态:从生产到分发的全链路变革 AI正成为新媒体领域的核心基础设施,通过五大能力重塑内容产业:自动化生产(AIGC写作/制图/剪辑效率提升5-10倍)、智能分发(算法精准匹配用户)、数据洞察(实时舆情分析)、风险管控(审核效率提升12倍)和运营优化(A/B测试自动化)。这推动行业从"人找内容"转向"内容找人",制作成本下降90%的同时,也带来同质化加剧、版权争议和职业重构等挑战。当前阶段,人机协同成为主流——AI处理标准化生产,人类专注创意与价值观把控。

eastyuxiao的专栏 384

HDU1042 N!(大数问题,万进制)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1042 N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 89320    Accepted Submission(s):...

Y先森0.0 567

嵌入式设备系统日志记录及调试技巧_嵌入式日志系统(1),如何成为杰出的程序员

这里面我使用的芯片为哈弗体系,全局常量存储编译器默认分配在flash,需要注意如果使用片内flash时,注意存储调试等级的flash块不要与代码区重合,要不然修改调试等级擦除flash块同时PC指针指向当前块的代码区,会导致仪器死机;这个也是之前用的比较多的,以上代码是模仿linux 内核的写法,可以比较好的做到日志信息分层,编译时相加对应的编译开关即可。但有个弊端就是,切换debug等级时,需要重新编译且需更新固件,而嵌入式设备出现异常后更新固件往往复位后,故障有时很难复现,调试起来比较浪费时间。

2401_84240431的博客 1296

HDU1042 n!【大数+万进制】

N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 86835    Accepted Submission(s): 25542 Problem Description Given an integer N(0 ≤

海岛Blog 3403

FFMPEG音视频开发: Linux下采集音频(alsa-lib库)、视频(V4L2框架)数据编码并实时推流到RTMP流媒体服务器,达到直播功能(推流)

一、环境介绍 操作系统: VM虚拟机运行的ubuntu18.04 FFMPEG版本: 4.4.2 摄像头: 罗技USB摄像头、电脑自带摄像头 声卡:电脑自带声卡 二、FFMPEG、X264的安装 参考这里:FFMPEG开发: Linux下采集摄像头数据录制成MP4视频保存到本: 地https://blog.youkuaiyun.com/xiaolong1126626497/article/d...

2993

为什么 CL_DEMO_OUTPUT 不能用于生产用途:不仅是 demo 标签那么简单

摘要:CL_DEMO_OUTPUT 虽能快速展示ABAP数据,但存在严重生产风险:1) 官方定位为示例工具,不承诺兼容性与支持;2) 非Released API,云环境直接不可用;3) 依赖SAP GUI,缺乏日志关键特性;4) 存在版本漂移、类型限制、性能隐患及安全缺口。典型事故案例包括后台Job崩溃、Gateway链路污染和云迁移失败。生产环境应改用结构化日志(如SLG1)或稳定API输出,避免将调试工具误作工程方案。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 135

万进制(HDU1042)N!

顾名思义就是以万为单位的进制数,这里是主要用于hdu1042这题,题目大意就是要求出给定n的阶乘,由于得到的结果有可能是一个非常大的数(超过几千位的大数),所以不能用普通的整形数去存。所以就想到用一个数组来存,每个数组存储所得结果的一位(现在说的一位是指万进制的一位,也就是0—9999)然后为了计算过程中更方便计算数组从0开始存的位越来越高,使得往后进一时可以直接再多用一个。就比如说存123456...

master__boy的博客 543

让 ABAP 复杂内表优雅“喂饱”:Complex Internal Table Filling 全面实战指南

本文为ABAP开发者系统梳理了复杂内表的填充与复制方法。重点介绍了work area的两种声明方式、APPEND操作的多形态用法及其初始值语义,以及VALUE #( )构造器的逐行与整表写法。同时讲解了CORRESPONDING的同名字段映射功能,帮助开发者在"航司与航线"等复杂业务场景中实现最佳实践。文章还涵盖内存优化、可读性建议和常见误区,提供可运行样例,适用于ABAP On-Premise和SAP BTP环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 169

hdu1042 java_(大数 万进制) N! hdu1042

N!Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 88267 Accepted Submission(s): 26008Problem DescriptionGiven an integer N(0 ≤ N ≤ 10000), your ...

weixin_34567079的博客 234

利用恒源云云端GPU高效训练YOLOv11模型全流程:从环境搭建到模型部署,让你摆脱硬件束缚

记住,云端GPU的核心优势是“弹性算力+一键环境”,只要把握好这一工具特性,再结合YOLOv11的高性能模型架构,你也能在计算机视觉领域快速落地项目。接下来,我们从工具准备到模型部署,一步步带你实现高效训练,真正帮你解决资源与效率的核心痛点。凭借其在目标检测、实例分割任务上的卓越性能,成为众多开发者的首选。据统计,使用云端GPU训练YOLOv11,在处理百万级数据集时,训练效率较本地普通GPU提升。在安防监控中,YOLOv11可实时检测人员、车辆异常行为,某园区采用该方案后,异常事件识别准确率达。

LXY_LOVE36的博客 213

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

hdu 1042 N!【万进制】

题目 Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! 输入 One N in one line, process to the end of file. 输出 For each N, output N! in one line. 输入样例 1 2 3 输出样例 1 2 6 题目分析 此题就是求解10000以内的阶乘,但是稍稍一想,在C++中整数的范围也不过231−12^{31}-1231−1,更大的long l

QYQHxyh的博客 170

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

(大数 万进制) N! hdu1042

N! Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 88267Accepted Submission(s): 26008 Problem Description Given an intege...

150

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

N! (HDU - 1042 )(大数+万进制)

N! (HDU - 1042 )(大数+万进制) Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in one line, process to the end of file. Output For each N, output N! in one line. Sample ...

菜鸡的博客 930

HDU-1042 N!(大数+万进制)

HDU-1042 N!(大数+万进制) Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in one line, process to the end of file. Output For each N, output N! in one line. Sample Input 1 2 3 Sample Output 1 2 6 问题分析:   看似简单的问题,

00后的博客 249

HDU - 1042 N! 大数阶乘

N! HDU - 1042(点击跳转) Input One N in one line, process to the end of file. Output For each N, output N! in one line. Sample Input 1 2 3 Sample Output 1 2 6 解析 使用万进制或更高进制均可; 注意0的阶乘为1; 注意数组初始化; 输出需要用%04d; AC代码 #include<stdio.h> #include<string.h>

斯文~ 241

Hdu 1042 N! (高精度数)

Hdu 1042 N! (高精度数) Problem Description Givenan integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input OneN in on...

dilan3700的博客 205

HDU 1042 N!万进制

一个大数的阶乘!! 先贴代码,过几天在写自己的思路~ #include using namespace std; int a[1000000]; int main(){ int n; while (scanf("%d", &n) != EOF){ memset(a, 0, sizeof(a)); a[1] = 1; int cnt = 1; i

zhbit_wen的博客 512
上一篇: HDU1088 字符串
下一篇: quick_sort
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值