Všetci ste mohli naraziť na scenáre, ako sú nasledujúce:
-(int) fightMath(int one, int two) {
if(one == 0 && two == 0) { result = 0; }
else if(one == 0 && two == 1) { result = 0; }
else if(one == 0 && two == 2) { result = 1; }
else if(one == 0 && two == 3) { result = 2; }
else if(one == 1 && two == 0) { result = 0; }
else if(one == 1 && two == 1) { result = 0; }
else if(one == 1 && two == 2) { result = 2; }
else if(one == 1 && two == 3) { result = 1; }
else if(one == 2 && two == 0) { result = 2; }
else if(one == 2 && two == 1) { result = 1; }
else if(one == 2 && two == 2) { result = 3; }
else if(one == 2 && two == 3) { result = 3; }
else if(one == 3 && two == 0) { result = 1; }
else if(one == 3 && two == 1) { result = 2; }
else if(one == 3 && two == 2) { result = 3; }
else if(one == 3 && two == 3) { result = 3; }
return result;
}
Stručne povedané, ako efektívne zjednodušiť uvedený scenár v prostredí Objective-C?
Akékoľvek návrhy / nápady / riešenia? Na zdraví :)
edit: Pre porovnanie, scenár prevzatý z tu. Dúfam, že táto otázka môže ušetriť aj jednu sekundu potrebného vývojára.
odpovede:
5 pre odpoveď č. 1Cieľ C je postavený na C. Takže dobré riešenie C bude vhodné aj pre cieľ C
int result[][4] = {
{ 0, 0, 1, 2 },
{ 0, 0, 2, 1 },
{ 2, 1, 3, 3 },
{ 1, 2, 3, 3 }
};
return result[one][two]
Ako viem, neexistujú žiadne konkrétne osvedčené postupy pre tieto problémy v rámci cieľa C.