|
후니 님이 쓰신 글 :
: 임의의정수 n을 입력받아 n까지의짝수와 홀수의 합을 계산하는 프로그램을 어떻게 작성하죠? for반복문을이용해서 1개... 그리고 while반복문을 이용해서 또하나해야해요..
: 이 두가지 방법을 좀 알려주세요~ 흐미...시간없다...적어도 8일 아침 11시까지 알아내야하는데..부탁드려요..
: 12시도 괜찬아염... 아 5시간을 고민해도 안되네요.,,,
//---------------------------------------------------------------------------
#include <iostream>
#pragma hdrstop
#include <vector>
#include <iterator>
#include <algorithm>
//---------------------------------------------------------------------------
using namespace std;
class IntSeq
{
public:
IntSeq(int init): n(init) {}
int operator()() { return n++; }
private:
int n;
};
class OddAndEvenSum: public unary_function<int, void>
{
public:
OddAndEvenSum(): odds(0), evens(0) {}
void operator()(int n)
{
if (n % 2 == 0)
evens += n;
else
odds += n;
}
int OddSum() const { return odds; }
int EvenSum() const { return evens; }
private:
int odds, evens;
};
int main()
{
int n;
cout << "n = "; cin >> n;
vector<int> series(n);
generate(series.begin(), series.end(), IntSeq(1));
OddAndEvenSum sums = for_each(series.begin(), series.end(), OddAndEvenSum());
cout << "The sum of odd numbers = " << sums.OddSum();
cout << "\nThe sum of even numbers = " << sums.EvenSum() << endl;
return 0;
}
//---------------------------------------------------------------------------
|