大数加法
来源:互联网 发布:重庆悦来数据谷 编辑:程序博客网 时间:2024/06/06 20:32
算法提高 大数加法
时间限制: 1 Sec 内存限制: 256 MB题目描述
输入两个正整数a,b,输出a+b的值。
输入
两行,第一行a,第二行b。a和b的长度均小于1000位。
输出
一行,a+b的值。
样例输入
42
样例输出
6
第一种解法:
#include<stdio.h>#include<string.h>int main(){ int i,t,x; char a[1010],b[1010]; int c[1010],d[1010],e[1010]; int p,q,m,n; memset(e,0,sizeof(e)); memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); scanf("%s %s",a,b); m=strlen(a); n=strlen(b); p=0; q=0; for(i=m-1; i>=0; i--) { c[p]=a[i]-'0'; p++; } for(i=n-1; i>=0; i--) { d[q]=b[i]-'0'; q++; } if(m<n) { t=m; m=n; n=t; } for(i=0; i<m; i++) { e[i]=e[i]+c[i]+d[i]; if(e[i]>=10) { e[i]=e[i]%10; e[i+1]=1; } } for(i=m; i>=0; i--) if(e[i]!=0) { x=i; break; } for(i=x; i>=0; i--) printf("%d",e[i]); printf("\n"); return 0;}
第二种解法:
#include<iostream>#include<string.h>#include<stdio.h>using namespace std;int main(){ char a[1005],b[1005]; int v1[1005],v2[1005],v3[1005]; int i,j,len1,len2; cin>>a>>b; memset(v1,0,sizeof(v1)); memset(v2,0,sizeof(v2)); memset(v3,0,sizeof(v3)); len1=strlen(a); len2=strlen(b); for(i=0;i<len1;i++) v1[i]=a[len1-1-i]-'0'; for(i=0;i<len2;i++) v2[i]=b[len2-1-i]-'0'; //cout<<v1<<" "<<v2; if(len1<len2) len1=len2; for(i=0;i<len1;i++) { v3[i]=v3[i]+v1[i]+v2[i]; if(v3[i]>=10) { v3[i]=v3[i]%10; v3[i+1]=1; } } if(v3[len1]!=0) cout<<v3[len1]; for(i=len1-1;i>=0;i--) cout<<v3[i]; cout<<endl; return 0;}
0 0
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 大数加法
- 正则表达式
- Dubbo架构设计详解
- 聊一聊软件测试的三大测试方向
- excel学习笔记--函数、VBA
- http://lib.csdn.net/litao0942051021/chart/Java学习
- 大数加法
- Linux下安装Java环境配置步骤详述
- 华为OJ-----最后一个单词长度
- 在控制台打印一个圆
- x264+mp4v2仿微信小视频(初版)
- zookeeper+hadoop2.X HA集群搭建
- 函数的四种调用模式
- numpy tolist()
- Trafodion成熟的SQL on HBase解决方案