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

3月12日(进阶4)

进阶4.大阶乘计算

题目描述

输入一个正整数n,输出n!的值。
其中n!=123*…*n

n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。

​ 参考算法:

​ 使用一个数组A来表示一个大整数aA[0]表示a的个位,A[1]表示a的十位,依次类推。
a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。
首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。

代码

#include<iostream>#include<vector>usingnamespacestd;intmain(){intn;if(!(cin>>n))return0;if(n==0||n==1){cout<<1<<endl;return0;}// 1000! 大约 2600 位,开 3000 安全vector<int>res;res.push_back(1);// 初始化 A = 1for(intk=2;k<=n;k++){intcarry=0;// 进位for(inti=0;i<res.size();i++){inttmp=res[i]*k+carry;res[i]=tmp%10;carry=tmp/10;}// 如果最后还有进位,继续向前填充while(carry){res.push_back(carry%10);carry/=10;}}// 倒序输出结果for(inti=res.size()-1;i>=0;i--){cout<<res[i];}cout<<endl;return0;}

总结

数组存储:用一个数组A存储大整数,A[0]存个位,A[1]存十位,以此类推。

逐位相乘:计算A×kA \times kA×k时,让数组的每一位都乘以kkk

处理进位

  • 每一位的新数值 =当前值 + 进位
  • 新的进位 =新数值 / 10
  • 该位的最终值 =新数值 % 10

倒序输出:因为是从个位开始存的,输出时需要从最高位向最低位打印。


翻译

V. 硬件连接为了正常工作,硬件需要允许组件进行通信和交互的物理连接。总线提供了一个由一组导线或电路组成的通用互连系统,用于协调和移动计算机内部部件之间的信息。计算机总线由两个通道组成:一个供CPU用来定位数据,称为地址总线;另一个用于将数据发送到该地址,称为数据总线。 总线的特点有两个:它一次可以处理多少信息(称为总线宽度),以及它传输这些数据的速度有多快。

串行连接是一根或一组导线,用于将信息从CPU传输到外部设备,如鼠标、键盘、调制解调器、扫描仪和某些类型的打印机。这种类型的连接一次只传输一条数据,因此速度较慢。使用串行连接的优点是它可以在长距离上提供有效的连接。并行连接使用多组导线同时传输信息块。 大多数扫描仪和打印机使用这种类型的连接。并行连接比串行连接快得多,但它被限制在CPU和外部设备之间小于3米(10英尺)的距离内。

http://www.jsqmd.com/news/468807/

相关文章:

  • Redis 平替来了!SpringBoot 集成 Dragonfly,性能暴涨 25 倍
  • 今年NVIDIA GTC,将会是VLA、端到端和WAM的高光时刻
  • 请介绍下 C++ 模板中的 SFINAE?它的原则是什么?
  • Flutter 三方库 common_locale_data 的鸿蒙化适配指南 - 实现具备全球化区域元数据与多语言辅助能力的底层数据池、支持端侧国际化业务的精细化治理实战
  • 好奇Clawhub/Skillhub上的插件/Skills(案例一)
  • CMakeLists.txt配置详细介绍
  • openclaw使用笔记,如何启动
  • 图文手把手!小艺接入 OpenClaw 超简单
  • 0311晨间日记
  • 周鸿祎回应“龙虾安全”争议:它是好东西绝非病毒,不发展才是最大安全隐患
  • 搜维尔科技:使用Manus Pro数据手套在实验室远程操控22自由度机械手
  • Flutter 三方库 serial_csv 的鸿蒙化适配指南 - 实现极速的流式 CSV 数据编解码、支持端侧超大规模表格数据的高效序列化实战
  • Flutter 三方库 system_shortcuts 的鸿蒙化适配指南 - 实现快速触发系统级快捷功能、支持 WiFi 开关、亮度调节与系统设置一键直达
  • 小团队开发小 web 项目,使用 PHP 还是 next.js ?
  • python flask django美食短视频分享交流社区系统
  • Matplotlib:tick_params的用法
  • JAVA按模版导出Word文档(无需转换word格式)
  • 50个深蹲,就能练遍整个下半身!
  • 搜维尔科技:SenseGlove R1专为无缝控制人形机器人手而设计,融合了主动力反馈、毫米级手指追踪精度和振动触觉反馈
  • 2026年,济南联想信创服务器供应商究竟哪家强?最新评测为你揭晓答案!
  • the evilness of American English
  • 关于立交中辅助车道设置的探讨
  • PHP与C++:Web开发与系统编程的终极对决
  • python flask django露营研学基地服务管理系统
  • 自然语言处理实战与Ai辅助编程指南
  • # 发散创新:用CUDA+OpenMP实现异构计算在图像滤波中的高效加速 在现代高性能计
  • 营销智能体≠聊天机器人!搞清这三层,你的投入才不打水漂
  • linux 服务器设置 时 /etc/passwd设置为nologin时,登录SFTP会报 No supported authentication methods available
  • 简单绘制装修施工进度图在线画图工具操作便捷易上手
  • 源码交付赋能ISV:基于GB28181/RTSP的低代码AI视频平台二次开发实战