AcWing 719. 连续奇数的和 2 ---- C++ 使用类、运算符重载、方法封装
原题链接
简单
作者:
cheng2099
,
2021-01-16 16:09:19
,
所有人可见
,
阅读 389
#include <iostream>
#include <algorithm>
using namespace std;
class Data{
friend istream& operator>>(istream&, Data&);
friend ostream& operator<<(ostream&, const Data&);
public:
Data() = default;
public:
int oddSum();
private:
int x;
int y;
};
istream&
operator>>(istream& in, Data& d)
{
in >> d.x >> d.y;
if (d.x > d.y) {
int tmp;
tmp = d.x;
d.x = d.y;
d.y = tmp;
}
return in;
}
ostream&
operator<<(ostream& out, const Data& d)
{
cout << d.x << " " << d.y;
return cout;
}
int Data::oddSum() {
int sum;
int start = 0;
if (abs(x) % 2 == 1) {
start = 2;
} else {
start = 1;
}
for (int i = x + start; i < y; i += 2) {
sum += i;
}
return sum;
}
int main() {
int num;
cin >> num;
Data data;
while (num--) {
cin >> data;
cout << data.oddSum() << endl;
}
return 0;
}