HDOJ 1047 Integer Inquiry
题目
分类
大数 求和
题意
求 n 个数的 和 (n <= 100)
和 HDOJ 1002 Sum Problem 一样直接套用 字符相加函数 即可
代码
#include <iostream>
#include <string>
using namespace std;
string add(string & a,string & b);
int main()
{
int t;
string s1,s2;
cin >> t;
while(t--)
{
cin >> s1;
if(s1 == "0")
cout << '0' << endl;
else{
while(cin >> s2)
{
if(s2 == "0")
break;
s1 = add(s1,s2);
}
cout << s1 << endl;
}
if(t)
cout << endl;
}
return 0;
}
string add(string & a,string & b)
{
// cout << a << endl << b << endl;
string s;
int t,c = 0;
if(a.length() < b.length())
swap(a,b);
for(int i = b.length();i < a.length();i++)
b.insert(0,"0");
for(int i = 0;i < a.length();i++)
s += '0';
for(int i = a.length()-1;i >= 0;i--)
{
t = (a[i] - '0') + (b[i] - '0') + c;
s[i] = t % 10 + '0';
c = t / 10;
}
if(c)
{
string a;
a += ('0' + c);
s.insert(0,a);
}
// cout << s << endl;
return s;
}