输入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;
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类型?的主要内容,如果未能解决你的问题,请参考以下文章
C#编程:输入一个4位数的正整数,编写程序,输出这个数的千位,百位,十位,个位。