A는 50세, B는 32세, A, B, C는 각각 5세, 10세, 49세이다.
코드는 다음과 같습니다:
bool Age::mul(int a, int b, int c)
{
return (a *b*c==2450);
}
bool Age::pls(int a, int b, int c)
{
return (a b c)2==0;
}
void Age:: arth()
{
typedef pairlt; int, agegt;
int tmp, ave, hit
for(age_t.a=1;age_t.alt;=2450;age_t. a)
for(age_t.b=1;age_t.blt;=age_t.a;age_t.b)
for(age_t.c=1;age_t.clt;= age_t.b ;age_t.c ){
if(mul(age_t.a,age_t.b,age_t.c) amp;amp; pls(age_t.a,age_t.b,age_t.c) ){
ave=(age_t.a age_t.b age_t.c)/2;
m_age.insert(Pair(ave,age_t));
}
}
m_iter=m_age.begin();
while(true){
tmp=m_age.count( m_iter-gt ;first);
if(tmpgt;1 || m_iter==m_age.end()){
hit=m_iter-gt;first;
중단;
}
m_iter;
}
for(m_iter=m_age.begin(); m_iter!= m_age.end (); m_iter ){
if (hit==m_iter-gt; first){
coutlt;lt;"A may "lt;lt;m_iter-gt ;두 번째.alt;lt;" 세"lt;lt;endl;
coutlt;lt;"B는 "lt;lt;m_iter-gt;second.blt;lt;" 세"일 수 있습니다. lt;lt ;endl;
coutlt;lt;"C는 "lt;lt;m_iter-gt;second.clt;lt;" 세"lt;lt;endl;
coutlt ;lt;"Bis "lt;lt;m_iter-gt;firstlt;lt;" 세"lt;lt;endl;
coutlt;lt;endl;
}
}
}
실행 결과는 다음과 같습니다.
A may 49세
B는 10세일 수 있음
C는 5세일 수 있음
B는 32세일 수 있음
A는 50세일 수 있음
B 5월 7세
C는 7세일 수 있다
B는 32세
그리고 A B C는 모두 A보다 어리다. A가 50세 이상이면 위의 결과 2개 확실하지 않음. 따라서 A는 50세여야 하며 첫 번째 상황은 요구 사항을 충족합니다. 따라서 A는 50세, B는 32세, A B C는 각각 5세, 10세, 49세입니다.