Chciałem pytanie FizzBuzz, które nie obejmuje operatora modulo. Zwłaszcza, że zazwyczaj przeprowadzam wywiady z twórcami stron internetowych, dla których operator modulo nie pojawia się tak często. A jeśli nie jest to coś, na co napotykasz regularnie, jest to jedna z tych rzeczy, które sprawdzasz kilka razy, gdy jej potrzebujesz.
(Oczywiście, jest to koncepcja, którą najlepiej byłoby spotkać na jakimś kursie matematyki gdzieś po drodze, ale to inny temat.)
Tak więc wymyśliłem to, co bez wyobraźni nazywam Trójką w odwrotnej kolejności . Instrukcja jest następująca:
Napisz program, który wypisze w odwrotnej kolejności każdą wielokrotność 3 z przedziału od 1 do 200.
Robiąc to w normalnej kolejności, to łatwe: pomnóż indeks pętli przez 3, aż osiągniesz liczbę przekraczającą 200, a następnie zakończ. Nie musisz się martwić o to, po ilu iteracjach zakończyć, po prostu kontynuujesz, aż osiągniesz pierwszą zbyt wysoką wartość.
Ale cofając się, musisz wiedzieć, od czego zacząć. Niektórzy mogą intuicyjnie zdawać sobie sprawę, że 198 (3 * 66) to najwyższa wielokrotność 3 i jako taka, zakoduje na stałe 66 w pętli. Inni mogą użyć operacji matematycznej (dzielenie liczb całkowitych lub floor () na dzieleniu zmiennoprzecinkowym 200 i 3), aby obliczyć tę liczbę, a robiąc to, zapewnić coś bardziej ogólnego zastosowania.
Zasadniczo jest to ten sam rodzaj problemu, co FizzBuzz (zapętlanie wartości i drukowanie ich z niespodzianką). Jest to problem do rozwiązania, który nie wykorzystuje niczego tak (względnie) ezoterycznego jak operacja modulo.