方法一超时:

#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. CentOS6.4安装nginx1.4
  2. IIS 8.5配置.net网站[花了半个多小时]
  3. debian 8 mysql_在Debian 8系统安装 nginx + php + mysql(MariaDB) 基本Web环境
  4. app开发历程————Android程序解析服务器端的JSON格式数据,显示在界面上
  5. channelinactive触发后不关闭channel_go那些事儿|channel使用及其实现原理
  6. 前端学习(2470):echart复习电商管理通过erchart基本使用
  7. Standard C Episode 8
  8. JMS学习八(ActiveMQ消息持久化)
  9. 蚂蚁集团技术专家山丘:性能优化的常见模式及趋势
  10. ps右键不显示编辑选项_0基础小白能上手的AE动态插画教程你还不知道么?
  11. 面试题 05.08. 绘制直线【位运算】
  12. [转]Android ANR 分析解决方法
  13. javascript中常用的对象创建方式有哪些?
  14. 虚拟机安装教程win10_Win10封装教程1-VM虚拟机安装及配置
  15. 2019年美赛建模总结与e题思路
  16. ADS入门,使用ADS创建和仿真一个简单的线路
  17. 杭州互联网公司和生活成本
  18. opencv立方体的画法_opencv几何图形画法
  19. 出生率新低!1978-2020中国人口出生率、死亡率及自然增长率变迁
  20. 数学----两个或者多个函数相乘求它们的导数

热门文章

  1. fastText的原理剖析
  2. 开发系统平台常用的-MVC设计模式简介
  3. 检测、分割用什么轻量级网络呢?
  4. ResNet在计算机视觉中的应用
  5. CSS入门之引用、选择器、属性(六分之三)
  6. Uploadify jquery+falsh+UploadHandler.ashx
  7. Spring PropertyPlaceholderConfigurer
  8. 用 GStreamer 简化 Linux 多媒体开发
  9. 【转】结合ashx来在DataGrid中显示从数据库中读出的图片
  10. keil4在win10上无法启动_斯柯达的一键启动装置除了方便,还有啥功能?