zoukankan      html  css  js  c++  java
  • P1601 A+B Problem(高精)

    题目描述

    高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]

    输入输出格式

    输入格式:

    分两行输入a,b<=10^500

    输出格式:

    输出只有一行,代表A+B的值

    输入输出样例

    输入样例#1: 
    1
    1
    输出样例#1: 
    2

     几百年没写过高精了,今天突发奇想打算练练手。结果发现了许多问题。

    比如说strrev不能用,反转需要用其它方法;

    0+0要特判(可能在某些做法中不用)...主要是我用的s[i]-'0',如果s[i]本身就是0的话,减完就没有东西了。

     1 #include <iostream>
     2 #include <cmath>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <cstdlib>
     6 #include <algorithm>
     7 using namespace std;
     8 char s1[505],s2[505];
     9 int ans[600];
    10 int main()
    11 {
    12     cin>>s1>>s2;
    13     int len1=strlen(s1),len2=strlen(s2);
    14     char tmp;
    15     if(s1[0]=='0' && s2[0]=='0') {printf("0");return 0;}
    16     for(int i=0;i<len1/2;i++)
    17     {
    18         tmp=s1[i];
    19         s1[i]=s1[len1-i-1];
    20         s1[len1-i-1]=tmp;
    21     }
    22     for(int i=0;i<len2/2;i++)
    23     {
    24         tmp=s2[i];
    25         s2[i]=s2[len2-i-1];
    26         s2[len2-i-1]=tmp;
    27     }
    28     int jw=0,sum=0,cnt=max(len1,len2);
    29     for(int i=0;i<min(len1,len2);i++)
    30     {
    31         sum=s1[i]-'0'+s2[i]-'0';
    32         ans[i]=(sum+jw)%10;
    33         jw=(sum+jw)/10;
    34     }
    35     
    36     if(len1>len2)
    37     {
    38         for(int i=len2;i<len1;i++)
    39         {
    40             sum=s1[i]-'0'+jw;
    41             ans[i]=sum%10;
    42             jw=sum/10;
    43         }
    44         if(jw!=0) ans[len1]=jw;
    45     }
    46     else
    47     {
    48         for(int i=len1;i<len2;i++)
    49         {
    50             sum=s2[i]-'0'+jw;
    51             ans[i]=sum%10;
    52             jw=sum/10;
    53         }
    54         if(jw!=0) ans[len2]=jw;
    55     }
    56     while(ans[cnt]==0) cnt--;
    57     for(int i=cnt;i>=0;i--) printf("%d",ans[i]);
    58     return 0;
    59 }
    P1601
  • 相关阅读:
    爬取淘宝商品信息
    eclipse 搭建Robotium环境--apk 环境搭建
    android studio2.0 搭建Robotium环境--有被测源代码的情况下
    mysql 特殊语句
    电脑浏览器访问文件夹
    mindmanager 15 停止工作
    yum被lock Existing lock /var/run/yum.pid: another copy is running as pid 1580. Another app is currently holding the yum lock; waiting for it to exi
    jenkins安装及部署
    ant+jmeter
    charles抓包及篡改
  • 原文地址:https://www.cnblogs.com/YXY-1211/p/9092965.html
Copyright © 2011-2022 走看看