• A+B problem II


    A + B Problem II

    Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
    Total Submission(s) : 108   Accepted Submission(s) : 21

    Font: Times New Roman | Verdana | Georgia

    Font Size:  

    Problem Description

    I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.

    Input

    The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.

    Output

    For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.

    Sample Input

    2
    1 2
    112233445566778899 998877665544332211
    

    Sample Output

    Case 1:
    1 + 2 = 3
    
    Case 2:
    112233445566778899 + 998877665544332211 = 1111111111111111110

    主要代码如下

    if(A>=B)
            {
                for(i=A-1,j=B-1;i>=0;i--,j--)
                {
                    if(j>=0)
                        a[i]=a[i]+(b[j]-'0');//清零的过程
                    if(a[i]>'9')
                    {
                        a[i]=a[i]-('9'-'/');
                        if((i-1)>=0)
                            a[i-1]=a[i-1]+('1'-'0');
                        else
                            t=t+('1'-'0');
                    }
                }
    
    


    整个程序

    #include <iostream>
    #include<cstring>
    using namespace std;
    int main()
    {
        char a[1001],b[1001],t;  //输入
        int n,i,j,k,A,B;
        cin>>n;
        k=n;
        while(n--)
        {
            t='0';
            cin>>a>>b;
            A=strlen(a);
            B=strlen(b);
            cout<<"Case"<<" "<<k-n<<":"<<endl<<a<<" "<<"+"<<" "<<b<<" "<<"= ";   //输出
            if(A>=B)
            {
                for(i=A-1,j=B-1;i>=0;i--,j--)
                {
                    if(j>=0)
                        a[i]=a[i]+(b[j]-'0');
                    if(a[i]>'9')
                    {
                        a[i]=a[i]-('9'-'/');
                        if((i-1)>=0)
                            a[i-1]=a[i-1]+('1'-'0');
                        else
                            t=t+('1'-'0');
                    }
                }
    
                if(t>'0'&&t<='9')
                    cout<<t<<a<<endl;
                else
                    cout<<a<<endl;
                
            }
            else
            {
                for(i=A-1,j=B-1;j>=0;i--,j--)
                {
                    if(i>=0)
                        b[j]=b[j]+(a[i]-'0');
                    if(b[j]>'9')
                    {
                        b[j]=b[j]-('9'-'/');
                        if((j-1)>=0)
                            b[j-1]=b[j-1]+('1'-'0');
                        else
                            t=t+('1'-'0');
                    }
                }
                if(t>'0'&&t<='9')
                    cout<<t<<b<<endl;
                else
                    cout<<b<<endl;
                
            }
            if(n!=0)
                cout<<endl;
            
        }
        
        return 0;
    }
    


     

  • 相关阅读:
    Single Number II
    Pascal's Triangle
    Remove Duplicates from Sorted Array
    Populating Next Right Pointers in Each Node
    Minimum Depth of Binary Tree
    Unique Paths
    Sort Colors
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Climbing Stairs
  • 原文地址:https://www.cnblogs.com/u013533289/p/4477341.html
Copyright © 2020-2023  润新知