读书人

wikioi 3116 高精度习题之加法

发布时间: 2013-10-01 12:15:56 作者: rapoo

wikioi 3116 高精度练习之加法

题目描述 Description

给出两个正整数A和B,计算A+B的值。保证A和B的位数不超过500位。

输入描述 Input Description

读入两个用空格隔开的正整数

输出描述 Output Description

输出A+B的值

样例输入 Sample Input

3 12

样例输出 Sample Output

15

数据范围及提示 Data Size & Hint

两个正整数的位数不超过500位

下面三种方法有细微的差别:

第一种方法:顺序读入字符串:

#include <iostream>#include <cstring>using namespace std;int main(){  char x[555],y[555];  int a[555]={0},b[555]={0},c[555]={0};  cin >> x >> y;  int len_x = strlen(x);  int len_y = strlen(y);  for(int k=0; k<len_x; k++)  {    a[k]=x[len_x-1-k]-'0';  }  for(int k=0; k<len_y; k++)  {    b[k]=y[len_y-1-k]-'0';  }  int len_max = len_x>len_y?len_x:len_y;    for(int i=0; i<len_max; i++)  {    c[i]=a[i]+b[i];  }  for(int i=0; i<len_max; i++)  {    if(c[i]>=10)    {      c[i+1]++;      c[i] -= 10;    }  }    if(c[len_max]==1) cout << 1;  for(int i=len_max-1; i>=0; i--) cout << c[i];  return 0;}


读书人网 >编程

热点推荐