大数加法
发布时间:2020-12-14 01:19:46 所属栏目:大数据 来源:网络整理
导读:1023: 算法提高 大数加法 时间限制:?1 Sec??内存限制:?256 MB 提交:?5??解决:?2 [ 提交][ 状态][ 讨论版] 题目描述 输入两个正整数a,b,输出a+b的值。 输入 两行,第一行a,第二行b。a和b的长度均小于1000位。 输出 一行,a+b的值。 样例输入 4 2 样例输出 6
1023: 算法提高 大数加法时间限制:?1 Sec??内存限制:?256 MB提交:?5??解决:?2 [ 提交][ 状态][ 讨论版] 题目描述输入两个正整数a,b,输出a+b的值。 输入
两行,第一行a,第二行b。a和b的长度均小于1000位。
输出一行,a+b的值。 样例输入4
2 样例输出6 提示来源
不含0+ 0=0的情况,不需要另外考虑
#include<iostream> #include<string.h> #include<stdio.h> using namespace std; void Add(char s1[],char s2[])//大数加法 { int num1[1005]={0},num2[1005]={0},sum[1008]={0};//三个数组注意要初始化为0 int i,j=0,k=0,len1,len2; len1=strlen(s1); len2=strlen(s2); for(i=len1-1;i>=0;i--) num1[j++]=s1[i]-'0'; for(i=len2-1;i>=0;i--) num2[k++]=s2[i]-'0'; // cout<<1<<endl; for(i=0;i<=1005;i++) { sum[i]=num1[i]+num2[i]+sum[i]; if(sum[i]>=10) { sum[i+1]++; sum[i]=sum[i]%10; } // cout<<sum[i]; } for(i=1004;;i--) { if(sum[i]!=0) { k=i; break; } } for(i=k;i>=0;i--) cout<<sum[i]; cout<<endl; } int main() { char a[1005],b[1005]; scanf("%s %s",a,b); Add(a,b); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 数组 – 我可以定义不同类型的数组类型吗?
- delphi打勾Build with runtime packages后找到rtl.bpl文件解
- NYOJ 28 大数阶乘
- 我可以对从Delphi 2010中的wsdl导入类派生的类实现更改跟踪
- 如何在使用’/usr/bin/env perl’运行脚本时找出我正在使用
- golang, methods on values or pointers?
- luaoc.callStaticMethod实现OC和lua的相互调用
- php – 如何解开laravel类?
- 如何在Perl中提高多个数据库查询的效率?
- playframework – 为什么我要在Play中使用快速标签而不是Gr