nadamhu
2003.02.28
|
|
0 0
103
|
Szia!
// Igazat ad vissza, ha talalt.
BOOL keres(int* v, int n, int szumma, int ind1&, int& ind2)
{
int kisebb = 0;
int nagyobb = n-1;
while(kisebb < nagyobb)
{
int s = -1;
while(s < szumma)
{
s = v[kisebb] + v[nagyobb];
kisebb++;
}
kisebb--;
if(s == szumma)
{
ind1 = kisebb;
ind2 = nagyobb;
return true;
}
nagyobb--;
}
return false;
}
Magyarazat: a trivialis megoldas az osszes parositas megnezese lenne. Ezt tesszuk, a nagyobbik indexet elinditjuk fentrol, de a kisebbre mar nem nezunk meg olyan ertekeket, amelyek mar egy nagyob 'nagyobb'-al osszedadva is kiseb osszeget adtak mint 'szumma'...
Nem probaltam ki, remelem nem rontottam el. |
Előzmény: encse (102)
|
|