首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这个程序烦劳实现A+B,请大神指点

2013-03-17 
这个程序麻烦实现A+B,请大神指点#includeiostream#includestringusing namespace stdint numvoid ma

这个程序麻烦实现A+B,请大神指点
#include<iostream>
#include<string>
using namespace std;
int num;

void main()
{
    cin>>num;
string * A=new string[num],* B=new string[num];
string * pri=new string[num];
for(int i=0;i<num;i++)
{
    cin>>A[i]>>B[i];
char C;
int f=0;
for(int k=A[i].length()>B[i].length()?A[i].length()-1:B[i].length()-1;k>-1;k--)
{
C=A[i][k]+B[i][k]-48+f;
    f=0;
    if(C>57)
{C=C-10;f=1;}
    pri[i]+=C;
}
pri[i]+=char(48+f);
}
for(int j=0;j<num;j++)
{
cout<<"Case "<<j+1<<":\n";
cout<<A[j]<<" + "<<B[j]<<" = ";
if(pri[j][(int)pri[j].length()-1]=='1')
{
cout<<'1';
}
for(int m=(int)pri[j].length()-2;m>-1;m--)
{cout<<pri[j][m];}
cout<<"\n\n";
}
}
[解决办法]
问题的解决从格式化代码开始:



# include <iostream>
# include <string>

using namespace std;

int num;

void main()
{
    cin >> num;
    string * A = new string[num], * B = new string[num];
    string * pri = new string[num];
    for (int i = 0; i < num; i++)
    {
        cin >> A[i] >> B[i];
        char C;
        int f = 0;
        for (int k = A[i].length() > B[i].length() ? A[i].length() - 1 : B[i].length() - 1; k > -1; k--)
        {
            C = A[i][k] + B[i][k] - 48 + f;
            f=0;
            if (C > 57)
            {
                C = C - 10;
                f = 1;
            }
            pri[i] += C;
        }
        pri[i] += char(48 + f);
    }
    for (int j = 0; j < num; j++)
    {
        cout << "Case " << j + 1 << ":\n";
        cout << A[j] << " + " << B[j] << " = ";


        if (pri[j][(int)pri[j].length() - 1] == '1')
        {
            cout << '1';
        }
        for (int m = (int)pri[j].length() - 2; m > -1; m--)
        {
            cout << pri[j][m];
        }
        cout << "\n\n";
    }
}


[解决办法]
不过这次是C++版本的,看来C++做OJ的题还不错,省了不少事。


# include <iostream>
# include <string>
# include <vector>

using namespace std;

string add(string & aa, string & bb)
{
    string a(aa.rbegin(), aa.rend());
    string b(bb.rbegin(), bb.rend());
    vector<char> r;
    size_t i = 0;
    int carry = 0;
    int tmp;
    while (i < a.length() && i < b.length())
    {
        tmp = (a[i] - '0') + (b[i] - '0') + carry;
        r.push_back(tmp % 10 + '0');
        if (tmp >= 10)
            carry = 1;
        i++;
    }
    while (i < a.length())
    {
        tmp = (a[i] - '0') + carry;
        r.push_back(tmp % 10 + '0');
        if (tmp >= 10)
            carry = 1;
        i++;
    }
    while (i < b.length())
    {
        tmp = (b[i] - '0') + carry;
        r.push_back(tmp % 10 + '0');
        if (tmp >= 10)
            carry = 1;
        i++;
    }
    if (carry > 0)
        r.push_back(carry + '0');
    string rr(r.rbegin(), r.rend());
    return rr;
}

int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        string a, b, r;


        cin >> a >> b;
        r = add(a, b);
        cout << "Case " << i + 1 << ":\n";
        cout << a << " + " << b << " = " << r << "\n\n";
    }

    return 0;
}

4
1 2
112233445566778899 998877665544332211
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 1
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

Case 1:
1 + 2 = 3

Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110

Case 3:
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 1 = 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000



Case 4:
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 = 1999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999998


热点排行