int solveABCProblem( int a, int b )
{
for ( int currentC = a > 2*b ? a - ( a % b ) : 2*b, int prevValue = abs( currentC - a ); abs( currentC + b - a ) < prevValue; currentC += b, prevValue = abs( currentC - a ) );
return currentC;
}
varianta explicita a celei de mai sus :
Cod:
int solveABCProblem( int a, int b )
{
int currentC = a > 2*b ? a - ( a % b ) : 2*b; // minimizarea iteratiilor
int prevValue = abs( currentC - a );
int temp;
while ( ( temp = abs( currentC + b - a ) ) < prevValue )
{
prevValue = temp;
currentC += b;
}
return currentC;
}
Trimis: Joi Apr 19, 2007 8:01 am Titlul subiectului: (Fără titlu)
foarte frumos ! eu mersesem pe ideea de-a verifica multiplii lui b de ambele parti ale lui a, insa rotunjirea merge la fix. pana si numele topicului era un hint
Nu puteți crea un subiect nou în acest forum Nu puteți răspunde în subiectele acestui forum Nu puteți modifica mesajele proprii din acest forum Nu puteți șterge mesajele proprii din acest forum Nu puteți vota în chestionarele din acest forum Nu puteți atașa fișiere în acest forum Nu puteți descărca fișiere în acest forum