方法一超时:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int maxx=1e4+10;
char s1[maxx],s2[maxx];
int a[maxx],b[maxx];
int c[maxx];
int n;
int main(){while(cin>>n){a[1]=1%10;a[2]=1/10;b[1]=1%10;b[2]=1/10;int m=0;if(n==0){cout<<1<<endl;continue;}for(int i=1;i<=2;i++){for(int j=1;j<=2;j++){c[i+j-1]+=a[i]*b[j];c[i+j]+=c[i+j-1]/10;c[i+j-1]=c[i+j-1]%10;}}int len=n+m;while(c[len]==0&&len>0)len--;memset(a,0,sizeof(a));for(int i=len;i>0;i--){a[i]=c[i];}memset(b,0,sizeof(b));memset(c,0,sizeof(c));for(int i=2;i<=n;i++){m=log10(i)+1;int t=i;int j=0;while(j<m){b[++j]=t%10;t/=10;}for(int k=1;k<=j;k++){for(int z=1;z<=len;z++){c[k+z-1]+=b[k]*a[z];c[k+z]+=c[k+z-1]/10;c[z+k-1]=c[k+z-1]%10;}}len=len+j;while(c[len]==0&&len>0)len--;memset(a,0,sizeof(a));memset(b,0,sizeof(b));for(int k=len;k>0;k--){a[k]=c[k];}memset(c,0,sizeof(c));} for(int i=len;i>0;i--){cout<<a[i];}cout<<endl;}return 0;
}

方法二:四位进一次位,以前从数组一个单元存一个数位,现在存四个数位:

#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxx=1e5+10;
int a[maxx];
int main(){int n;while(cin>>n){memset(a,0,sizeof(a));if(n==0){cout<<1<<endl;continue;}int temp;a[0]=1;int k=0;for(int i=1;i<=n;i++){int v=0;for(int j=0;j<=k;j++){int temp;temp=a[j]*i+v;a[j]=temp%10000;v=temp/10000;}if(v!=0){a[++k]=v;}}cout<<a[k];for(int i=k-1;i>=0;i--)printf("%04d",a[i]);cout<<endl;}return 0;
}

HDU1042(高精度模拟乘法)相关推荐

  1. 定时器精度对性能的影响_Comet CAA-500天线分析仪 | 高精度模拟十字针同时显示SWR和阻抗...

    Comet CAA-500 MK2天线分析仪 高精度模拟十字针同时显示SWR和阻抗. 全彩色TFT LCD显示屏提供图形和数字SWR以及R和X值的总阻抗. 特征: 自动扫描模式 在LCD显示屏上自动绘 ...

  2. 力扣题解:43. 字符串相乘:模拟“乘法竖式”

    题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", ...

  3. 手动选择显示_【新品推介】Comet CAA500 MK2天线分析仪 | 高精度模拟十字针同时显示SWR和阻抗...

    Comet CAA-500 MK2天线分析仪 高精度模拟十字针同时显示SWR和阻抗. 全彩色TFT LCD显示屏提供图形和数字SWR以及R和X值的总阻抗. 特征: 自动扫描模式 在LCD显示屏上自动绘 ...

  4. 位运算模拟乘法,模指数运算

    1. 整数乘法(位运算) 使用位运算模拟乘法,其遵照以下的数学原理,即: ab=a(b020+b121+⋅⋅⋅+bn−12n−1)=a(b020)+a(b121)+⋅⋅⋅+a(bn−12n−1)ab= ...

  5. 高精度数乘法进位c语言,C语言中的高精度乘法

    大一新生初谈C语言中的高精度乘法 1.为什么需要高精度乘法及其实质 我们知道,计算机内部直接用int或double等数据类型储存数字是有范围限制的,即当数据运算大小过大后,计算机将会出现溢出情况,使得 ...

  6. 威佐夫博弈matlab,51nod1185 威佐夫游戏 V2 (模拟乘法)

    基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取.拿到最后1颗石子的 ...

  7. HDU-1042 N! 大数乘法 (C语言)

    这是一道简单的数学题,求一个数(N)的阶乘.但是问题是题中N给的非常大(0<=N<=10000),用for循环来做显然不行了.这里用数组来对付这些大家伙.基本思路如下: 1.开辟一个够大的 ...

  8. leetcode43(字符串相乘:模拟乘法竖式计算)

    题目:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 输入: num1 = "123", num2 ...

  9. poj2602(高精度模拟加法)

    高精度加法:这道题是把数字竖着写,还是两个大数相加,稍不注意就超时了,但是前导零这次是要保留的. #include<iostream> #include<algorithm> ...

最新文章

  1. 【综述】MV3D-Net、AVOD-Net 用于自动驾驶的多视图3D目标检测网络
  2. ExtJs之Ext.grid.GridPanel(部分未完)
  3. (未完)httpd进程数查询,prefork模式修改apache最大连接数
  4. 多线程:AQS源码分析
  5. Java web应用引用外部jar包 运行时报ClassNotFoundException 解决方法
  6. GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法
  7. java 3number_java 数据Number、Math
  8. 《走遍中国》珍藏版(十三)
  9. 将旧项目从Ant迁移到Maven的4个简单步骤
  10. 自助银行服务系统项目开发_自助服务时代即将结束
  11. Android SDK Manager更新不了的解决办法
  12. 2019春第八周作业
  13. 嵌入式工作笔记0006---半导体中的IP核是什么意思
  14. python 跳过异常元素继续,在python中的迭代器/生成器中引发异常后继续
  15. Android RadioButton(单选按钮)点击事件的两种方法
  16. [导入]关于中文文本的截取
  17. recordset.Open strSql, Conn, 3,3
  18. python 怎么算l2范数_“火车过桥”“火车会车”和“火车超车”问题怎么解?图形很直观...
  19. Juniper JunOS PPPOE配置
  20. 备战面试日记(4.2.13)- (框架.Spring【十三】之Spring IOC 源码finishBeanFactoryInitialization())

热门文章

  1. 《Python程序设计》题库(2)
  2. RNN 扫盲:循环神经网络解读及其 PyTorch 应用实现
  3. xilinx FIFO
  4. mysql创建表语句 引擎、编码和字符集设置
  5. CPU对指令长度的判断
  6. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem G. k-palindrome dp
  7. 论工程结构设计的重要性
  8. 小测一下fastjson的速度(纯娱乐)
  9. 《基于场景的工程方法》作者问答录
  10. 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate...