array_walk($numbers, function($number) {
$minimum = 30;
// 30 e cel mai mic număr care îndeplinește regula
if ($number >= $minimum && ($number - $minimum) % 11 == 0) {
// orice modulo de 11 din multiplu de 11 + 30 dă zero, este numărul nostru
echo $number . "\n";
}
});
defmodule Problem do
def find_results do
range = 10..99
Enum.each(range, fn n -> if n >= 30 and rem(n-30,11) == 0 do IO.puts(n) end end)
end
end
Problem.find_results
echo "Scrie toate numerele de doua cifre care au diferenta dintre cifra zecilor si cifra unitatilor egala cu 3 (tema de clasa a 2-a)";
for($i=14; $i<=96; $i++) {
$cifraunitatilor = $i % 10; // i mod 10, adica luam restul de la un numar impartit cu zece obtinand cifra unitatilor
$zecimala = floor($i / 10); // i div 10, adica impartim numarul cu 10 si rotunjim in jos, practic taiem ultima cifra obtinand zecimala
if(abs($zecimala - $cifraunitatilor) == 3) {
echo $i . " "; //daca diferenta e 3 scriem i
}
}
@andreieftimie credeam ca doar eu ma joc shortest challenge pe codefights… n + n - 3
Pe bune??? Nici unul nu sunteți în stare să rezolvați o problemă de clasa a 2-a?
Dacă @iamntz a trântit o perlă, o luați toți de bună? De ce 30 e minim? Oare 14 nu satisface cerința? Nici 25?
Și de ce verificați doar o singură direcție? Atât 30 cât și 36 satisfac cerința…
Singurul care s-a apropiat de nirvana a fost @andreieftimie, cu numărul minim de iterații, dar a dat-o-n bară la logică (ca restul) și la concatenare.
let numbers = [];
for (let i = 1; i < 10; i++) {
i > 2 && numbers.push(`${i}${i-3}`);
i < 7 && numbers.push(`${i+3}${i}`);
}
Si eu m-am gandit la diferenta absoluta, dar cerinta daca nu contine expresia “diferenta absoluta” atunci putem considera ca doar zecimala-unitate == 3 satisface total cerinta si mi-am modificat raspunsul, l-am repus sa fie cineva cu raspunsul ‘corect’. + nu conteaza numarul de iteratii
Am avut aceeași discuție și cu @angelp, care s-a supărat, și-a luat jucăriile și a plecat.
Este o problemă de clasa a doua. Îți garantez că majoritatea copiilor de clasa a II-a nu știe să calculeze 1-4. De fapt, numerele negative se învață prin clasa a IV-a sau a V-a.
Așa că, soluția ta, deși corectă, este prea complexă pentru enunțul problemei.
Totuși nu e cel mai eficient și scurt mod de a rezolva problema dată.
Dat fiind că problema dată are un număr mic de reaultate aș sugera asta fiind cea mai rapidă soluție:
@isti37
Enunțul nu spune că cifra zecilor este mai mare cu 3 decât cifra unităților, ci spune că diferența între cele două cifre este 3. Cum am zis mai sus, trebuie ca a - b == 3 || b - a == 3.
Serios?!
Soluția, scrisă ca în clasa a doua, fără giumbușlucuri și optimizări ar fi:
Aia este o interpretare și probabil n-ai fi depunctat dacă ai fi în clasa a doua, dar părerea mea e că detaliile astea fac diferența între copiii care vor fi selectați pentru olimpiade și cei care mai târziu, în liceu, se vor reprofila pe filologie.
În concluzie:
OK, fie, este o problemă de clasa a doua și copiii de clasa a doua ar avea probabil dificultăți, dar asta nu vă scuză pe voi. Sunt dezamăgit de faptul că toate rezolvările de aici au fost la fel de naive precum cele ale unui copil de clasa a doua.