FizzBuzz
рдЬрдм рдореИрдВрдиреЗ
рд╣реИрдХрд░ рд╕реНрдХреВрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдЖрдИ:
рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВ рдЬреЛ 1 рд╕реЗ 100 (рд╕рдорд╛рд╡реЗрд╢реА) рд╕реЗ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛ 3 рд╕реЗ рд╡рд┐рднрд╛рдЬреНрдп рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдлрд╝рд┐рдЬрд╝ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ 5 рд╕реЗ рд╡рд┐рднрд╛рдЬреНрдп рд╣реИ, рддреЛ рдмрдЬрд╝ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдпрд╣ 3 рдпрд╛ 5 рд╕реЗ рд╡рд┐рднрд╛рдЬреНрдп рд╣реИ, рддреЛ FizzBuzz рдЖрдЙрдЯрдкреБрдЯред рдЖрдк рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
(рддрдм рд╕реЗ, рд╣реИрдХрд░ рд╕реНрдХреВрд▓ рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдиреЗ рдХрд╛рдо рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рд░реНрдЪ рдЗрдВрдЬрди рдХреА рдорджрдж рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рдПред рдореИрдВрдиреЗ Google рдкрд░ рдЕрдкрдиреА рдкреЛрд╕реНрдЯ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд╕рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рд╢рд░реНрдд рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХреА рд╣реИред)
рдпрд╣ рдХрд╛рд░реНрдп рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдФрд░ рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб рдЬреИрд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ рдпрд╛ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рдЧреИрд░-рдкрд╛рдпрдерди рдкрд╛рдпрдерди рдХрд╛ рдПрдХ рд╕рд╛
рдЖрдЬ рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрд╛ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рджреЛрд╕реНрдд рдХреЛ рд╣реИрдХрд░ рд╕реНрдХреВрд▓ рдореЗрдВ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рджрд┐рдЦрд╛рдпрд╛, рдФрд░ рдЕрдЪрд╛рдирдХ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрд┐рддрдиреЗ рддрд░реАрдХреЗ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред рдЕрдЬрдЧрд░, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ
рдкреАрдИрдкреА 8 рдХреЗ рд╕рд╛рде, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╛рдпрдерди рдкрд╛рдпрдерди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдХреЛ рдкрд╛рдпрдерди рд╕рдорд╛рдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдХрд┐рди рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕рд╛рд╡рдзрд╛рдиреА: рдЕрдЧрд▓рд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЧреИрд░-рдкрд╛рдпрдерди рдкрд╛рдпрдерди рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдб рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 2.7.5 рдХреЗ рд╕рд╛рде)ред
рдмрдЧ рдлрд┐рдХреНрд╕ рдпрд╛ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдпрд╛
рдЯреНрд╡реАрдЯ рднреЗрдЬреЗрдВред
рдкрд╛рдпрдерди рдкрд╛рдпрдерди
def fizzbuzz(number): if number % 3 == 0 and number % 5 == 0: return 'FizzBuzz' elif number % 3 == 0: return 'Fizz' elif number % 5 == 0: return 'Buzz' else: return number for number in range(1, 101): print fizzbuzz(number)
рд▓рд┐рд╕реНрдк рдкрд╛рдпрдерди
fizzbuzz = lambda n: 'FizzBuzz' if n % 3 == 0 and n % 5 == 0 else None fizz = lambda n: 'Fizz' if n % 3 == 0 else None buzz = lambda n: 'Buzz' if n % 5 == 0 else None fizz_andor_maybenot_buzz = lambda n: fizzbuzz(n) or fizz(n) or buzz(n) or str(n) print reduce(lambda m,n: m+'\n'+n, map(fizz_andor_maybenot_buzz, range(1, 101)))
рдЬрд╛рд╡рд╛ рдкрд╛рдпрдерди
import sys class Value(object): def __init__(self,value): self.setValue(value) def setValue(self,value): self.value = value def getValue(self): return self.value def toString(self): return self.getValue().__str__() class FizzBuzz(object): def __init__(self, n): if n % 15 == 0: value = 'FizzBuzz'; elif n % 3 == 0: value = 'Fizz'; elif n % 5 == 0: value = 'Buzz'; else: value = str(n); self.setValue(value); def setValue(self,value): self.value = Value(value); def getValue(self): return self.value; class FizzBuzzRunner(object): def __init__(self, n): self.setN(n) def setN(self, n): self.n = n def run(self): for i in range(1,self.n): sys.stdout.write(FizzBuzz(i).getValue().toString()+'\n'); if __name__ == '__main__': n = 101; FizzBuzzRunner(n).run()
рд╕рд┐рд╕рд┐ рдкрд╛рдЗрдерди
def main(): i = 0; value = ''; while i < 100: i += 1 if i % 15 == 0: value = 'FizzBuzz'; elif i % 3 == 0: value = 'Fizz'; elif i % 5 == 0: value = 'Buzz'; else: value = str(i); print value; return 0; main();
рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдкрд╛рдпрдерди
def fizzbuzz(n): return 'FizzBuzz' if n % 3 == 0 and n % 5 == 0 else None def fizz(n): return 'Fizz' if n % 3 == 0 else None def buzz(n): return 'Buzz' if n % 5 == 0 else None def fizz_andor_maybenot_buzz(n): print fizzbuzz(n) or fizz(n) or buzz(n) or str(n) map(fizz_andor_maybenot_buzz, xrange(1, 101))