A+B问题(东方化改题+高精度题解)

描述

在大部分的在线题库中,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法,同时帮助神犇装B。

A+B问题的题目描述如下:

有一天,⑨正在学习加法,给定两个整数A和B,求出A+B的值。保证A、B及结果均在整型范围内。⑨不会,

于是她找到你,想请你写一个代码帮她解决这个问题。

输入

一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。

输出

一个整数,即A+B的值。保证结果在整型范围内。

参考题解

详见洛谷“A+B问题”题解,链接:https://www.luogu.org/problemnew/solution/P1001

本人不才,在这里贴上自己写的高精度加法,希望大家不要嫌弃。

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 char a1[240],b1[240];
 5 int a[240],b[240];
 6 int gaojia()
 7 {
 8     gets(a1);
 9     gets(b1);
10     int i,l1,l2;
11     l1 = strlen(a1);
12     l2 = strlen(b1);
13     for(i = 0;i < l1;i++){
14         a[i] = a1[l1 - i - 1] - '0';
15     }
16     for(i = 0;i < l2;i++){
17         b[i] = b1[l2 - i - 1] - '0';
18     }
19     int l;
20     if(l1 >= l2)    l = l1;
21     else    l = l2;
22     for(i = 0;i < l;i++){
23         a[i] += b[i];
24         if(a[i] >= 10){
25             a[i] = a[i] % 10;
26             a[i + 1]++;
27         }
28     }
29     if(a[l])    l++;
30     return l;
31 }
32 int main()
33 {
34     int i,l,k;
35     l = gaojia();
36     bool ling = false;
37     for(i = l - 1;i >= 0;i--){
38         if(a[i] != 0){
39             k = i + 1;
40             ling = true;
41             break;
42         }
43     }
44     if(ling){
45         for(i = k - 1;i >= 0;i--){
46             printf("%d",a[i]);
47         }
48     }
49     else    printf("0");
50     return 0;
51 }

第一个(其实是第二个)东方化改题,嗯

原文地址:https://www.cnblogs.com/aristocrat/p/8460021.html