zoukankan      html  css  js  c++  java
  • 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
Copyright © 2011-2022 走看看