输入N对位数不超过1000的正整数,求它们的和。 (编程使用struct创建一个bigNum类型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入N对位数不超过1000的正整数,求它们的和。 (编程使用struct创建一个bigNum类型?相关的知识,希望对你有一定的参考价值。

时间限制: 1000 ms 空间限制: 262144 KB

题目描述

输入N对位数不超过1000的正整数,求它们的和。
(编程使用strunc创建一个bigNum类型,并对’+’号运算符重载)

输入

第1行:一个正整数N,1≤N≤100;
下面有N行,每行2个整数:a和b,位数都不超过1000。

输出

一个正整数:和。
样例输入

1
12345 213
样例输出

12558

数据范围限制

1≤N≤100

请大神看看我的程序错在哪里:
#include<bits/stdc++.h>
using namespace std;
const int N=100;
struct bignum

string s;
int l;
void input()

cin>>s;
l=s.size();
int i;
string s0;
for(i=0;i<s.size();i++) s0[i]=s[s.size()-1-i];
for(i=0;i<s.size();i++) s[i]=s0[i];

void output()

int i;
for(i=0;i<s.size();i++) cout<<s[i];

bignum operator +(const bignum x)const

bignum tmp;
int i,tmp1,jin=0;
for(i=0;i<l;i++)

tmp1=(s[i]-'0')+(x.s[i]-'0')+jin;
tmp.s[i]=char(tmp1%10+'0');
jin=tmp1/10;

return tmp;

;
bignum A,B,C;
int main()


int i;
A.input();
B.input();
//A.output();
//B.output();
C=A+B;
cout<<C.s[0]<<C.s[1]<<endl;
for(i=0;i<100;i++) cout<<C.s[i]<<" ";
return 0;

参考技术A #include<bits/stdc++.h>

using namespace std;
const int N = 100;
void reverseStr(string& str)

int n = str.length();
for (int i = 0; i < n / 2; i++)
swap(str[i], str[n - i - 1]);


struct bignum
string s;
bignum(string ss=) : s(ss)
void input()
cin >> s;
reverseStr(s);

void output()
string ss(s);
reverseStr(ss);
cout << ss << endl;

int size() const
return s.size();

bignum operator + (const bignum x) const
if(size() < x.size())
return x+*this;
string tmp;
int i, tmp1, jin = 0;
for (i = 0; i < s.size(); i++)
if(i<x.size())
tmp1 = (s[i] - '0') + (x.s[i] - '0') + jin;
else
tmp1 = (s[i] - '0') + jin;
tmp += char(tmp1 % 10 + '0');
jin = tmp1 / 10;

if(jin)
tmp +=char(jin + '0');
return bignum(tmp);

;
bignum A, B, C;
int main()

int i;
A.input();
B.input();
A.output();
B.output();
C = A + B;
C.output();

return 0;

006:求整数的和与均值

 

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

读入n(1 <= n <= 10000)个整数,求它们的和与均值。

输入
输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。
输出
输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。
样例输入
4
344
222
343
222
样例输出
1131 282.75000
来源
习题(8-6)

#include <iostream>


using namespace std;
int main (){
int n,a;
int sum=0;

scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a);
sum +=a;
}
printf("%d %.5f",sum,double(sum)/n);

return 0;
}


 

以上是关于输入N对位数不超过1000的正整数,求它们的和。 (编程使用struct创建一个bigNum类型?的主要内容,如果未能解决你的问题,请参考以下文章

04:求整数的和与均值

C#编程:输入一个4位数的正整数,编写程序,输出这个数的千位,百位,十位,个位。

[PTA]实验4-1-4 求整数的位数及各位数字之和

[code3119]高精度练习之大整数开根

5输入一个不超过5位的正整数,编程实现:求出它是几位数,分别输出每位数字。

1021. 个位数统计 (15)