自己写的代码超时了:

方法一:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int maxx=2505;
char s1[maxx],s2[maxx],s3[maxx],s4[maxx];
int a[maxx],b[maxx],c[maxx],d[maxx];
int v1[maxx],v2[maxx];
int v[maxx];
int n;
int main(){while(scanf("%d",&n)!=EOF){if(n==0){cout<<0<<endl;continue;}else if(n==1||n==2||n==3||n==4){cout<<1<<endl;continue;}s1[0]='1';s2[0]='1';s3[0]='1';s4[0]='1';s1[1]='\0';s2[1]='\0';s3[1]='\0';s4[1]='\0';int len=0;int len2=0;for(int j=5;j<=n;j++){memset(v1,0,sizeof(v1));memset(v2,0,sizeof(v2));memset(v,0,sizeof(v));int n=strlen(s1);int m=strlen(s2);int n1=strlen(s3);int m1=strlen(s4);for(int i=0;i<n;i++){a[n-i]=s1[i]-'0';}for(int i=0;i<m;i++){b[m-i]=s2[i]-'0';}len=max(n,m)+1;for(int i=0;i<len;i++){int t=a[i]+b[i];if((t+v1[i])>=10){v1[i+1]=(v1[i]+t)/10;v1[i]=(v1[i]+t)%10;}else{v1[i]+=t;}}while(v[len]==0&&len>0)len--;for(int i=0;i<n1;i++){c[n1-i]=s3[i]-'0';}for(int i=0;i<m1;i++){d[m1-i]=s4[i]-'0';}int len1=max(n1,m1)+1;for(int i=0;i<len1;i++){int t=c[i]+d[i];if((t+v2[i])>=10){v2[i+1]=(v2[i]+t)/10;v2[i]=(v2[i]+t)%10;}else{v2[i]+=t;}}while(v2[len1]==0&&len1>0)len1--;len2=max(len1,len)+1;for(int i=0;i<len2;i++){int t=v1[i]+v2[i];if((t+v[i])>=10){v[i+1]=(v[i]+t)/10;v[i]=(v[i]+t)%10;}else{v[i]+=t;}}while(v[len2]==0&&len2>0)len2--;for(int i=0;i<m;i++){s1[i]=b[m-i]+'0';}for(int i=0;i<n1;i++){s2[i]=c[n1-i]+'0';}for(int i=0;i<m1;i++){s3[i]=d[m1-i]+'0';}for(int i=0;i<len2;i++){s4[i]=v[len2-i]+'0';}}for(int i=len2;i>0;i--){cout<<v[i];}cout<<endl;}return 0;
}

方法二:
这是看了大神的代码之后才通过的,八位才考虑进位操作的效率要提高了好多。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int a[10005][262];
int main(){int n;memset(a,0,sizeof(a));a[1][0]=1;a[2][0]=1;a[3][0]=1;a[4][0]=1;for(int i=5;i<10000;i++){for(int j=0;j<260;j++){a[i][j]+=a[i-1][j]+a[i-2][j]+a[i-3][j]+a[i-4][j];}for(int j=0;j<260;j++){if(a[i][j]>100000000){a[i][j+1]+=a[i][j]/100000000;a[i][j]=a[i][j]%100000000;}}}while(scanf("%d",&n)!=EOF){int j;for(j=259;j>=0;j--){if(a[n][j]!=0)break;}cout<<a[n][j];for(j=j-1;j>=0;j--){printf("%08d",a[n][j]);}cout<<endl;}return 0;
}

HDU1250(高精度加法)相关推荐

  1. 基础练习 高精度加法

    基础练习 高精度加法 时间限制:1.0s 内存限制:512.0MB 问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标 ...

  2. 用C++的类重载高精度加法,乘法和等于符号

    运行结果: 代码如下: #include<iostream> #include<algorithm> #include<string.h> #include< ...

  3. PAT甲级1024 Palindromic Number:[C++题解]回文串和高精度加法

    文章目录 题目分析 题目链接 题目分析 一个判断是否是回文数的函数:check,思路是使用双指针从两端分别往里走. 另一个是高精度加法函数add,传入两个vector. 另外,vector逆序构造可以 ...

  4. PAT甲级1023 Have Fun with Numbers:[C++题解]高精度加法和两个vector大小比较

    文章目录 题目分析 题目链接 题目分析 使用高精度加法高精度加法板子求 这个数的两倍,存在一个vector中. 所谓高精度就是使用string来存大的数,然后模拟列竖式加法,结果一位一位压入数组vec ...

  5. 高精度加法(C++实现)

    高精度加法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式加法计算 步骤 以下有顺序之分 数组清零 输入 获取长度 逆置 字符型数字转成对应的整型数字 计算并输出 ...

  6. 《信息学奥赛一本通》 高精度加法。输入两个正整数,求它们的和。

    高精度加法.输入两个正整数,求它们的和. 算法分析 升级版代码 算法分析 输入两个数到两个变量中,然后用赋值语句求它们的和,输出.但是,我们知道,在C++语言中任何数据类型都有一定的表示范围.当两个被 ...

  7. 高精度加法(非负)和大数阶乘及和汽水问题

    高精度加法(非负)和大数阶乘 文章目录 高精度加法(非负)和大数阶乘 一.问题描述 二.代码 三.问题描述 四.代码 五.问题描述 六.代码 一.问题描述 二.代码 #define _CRT_SECU ...

  8. 高精度加法(A+BProblemII)

    好久没有写文章了,主要是近期开学上网课再加上刷题的缘故,日常有些忙碌. 话不多说,接下来是正题: 一切问题都是有源头的,在这里我就直接先放题了. 接下来我以代码+部分代码的解释+注意事项进行 ps:( ...

  9. CCF NOI1138 高精度加法

    问题链接:CCF NOI1138 高精度加法. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 给两个正整数,计算它们的和. 输入 两行,每行表示一个数(位数达10000位). ...

  10. 高精度加法 problem A+B

    题目描述 高精度加法,相当于 a+b problem,不用考虑负数. 输入格式 分两行输入.a,b <=10^500 输出格式 输出只有一行,代表 a+b 的值. 输入输出样例 输入 1001 ...

最新文章

  1. window环境Visual Studio配置:OpenCV,Eigen,jsoncpp
  2. 四. RxJava之基本原理
  3. ipywidgets_未来价值和Ipywidgets
  4. ie8 ajax访问不了https,ie8不支持https协议的api接口么
  5. 你真的懂数据分析吗?一文读懂数据分析的流程、基本方法和实践
  6. 安装MySQL-python时发生错误:error: command 'gcc' failed with exit status 1
  7. SpringSecurity OAuth2搭建微服务安全认证网关
  8. 如何在资源管理器中恢复“最近文件夹”
  9. android 后台录制视频,Android实现视频录制
  10. 数据库系统的基本组成
  11. Java快速入门到精通—大数字运算(BigDecimal 类)
  12. Mapbox加载天地图CGCS2000矢量瓦片地图服务
  13. Python练习小程序 定时关机小脚本
  14. matlab画平行x轴的图,【MATLAB】画平行于坐标轴的曲线
  15. 模仿QQ背景为视频的登录页
  16. python决策树分类案例_python实现决策树分类算法
  17. c++left right 和 setw() 函数的用法Alignment of Code
  18. CSS实现两端对齐(及原理)
  19. gradle自定义任务
  20. 电商扣减库存_二类电商:鲁班今日最新消息!

热门文章

  1. 小甲鱼-累加数据段中的前3个字型数据【不对的话,请指教!】
  2. VUE的本地应用-V- on
  3. ACMNO.28 Python的三行代码解决 C语言-链接字符
  4. 长期分享干货的技术大佬
  5. 卡尔曼滤波:从入门到精通
  6. 一文看懂深度学习模型压缩和加速
  7. “看墙之外” ——遮挡下的人体姿态估计
  8. UVA 10306 e-Coins(全然背包: 二维限制条件)
  9. nodejs系列-翻译http
  10. 嵌入在C++程序中的extern C