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
  • 相关阅读:
    HDU X mod f(x)(题解注释)
    hdu 3555 Bomb(不要49,数位DP)
    hdu 2089 不要62(入门数位dp)
    暑假练习赛 003 B Chris and Road
    暑假练习赛 003 F Mishka and trip
    暑假练习赛 003 A Spider Man
    linux:关于Linux系统中 CPU Memory IO Network的性能监测
    linux TCP数据包重传过程----小结
    linux TCP头部的构造的简单分析
    linux TCP数据包封装在SKB的过程分析
  • 原文地址:https://www.cnblogs.com/YXY-1211/p/9092965.html
Copyright © 2011-2022 走看看