Jump to content
Warrior

[2] FizzBuzz - Nível de aprendizagem

Recommended Posts

Warrior

Título:

FizzBuzz

Objectivo:

Escreva um programa que imprima os números de 1 a 100, mas nos múltiplos de 3 imprima "Fizz" em vez do  número e nos múltiplos de 5 imprima "Buzz". Para os números que são múltiplos de tanto 3 como 5, imprima "FizzBuzz".

Exemplo de input/output

Um excerto do output do programa seria

1

2

Fizz

4

Buzz

Fizz

7

(...)

Material de apoio:

Não aplicável.

Restrições:

Não aplicável.


Discussão do problema em:

http://www.portugal-a-programar.pt/index.php?showtopic=16525


Soluções Enviadas

Skin - PHP

Gooden - VBnet

Skin - JavaScript

Skin - C

Skin - Perl

Betovsky - Haskell

magician - Ruby

magician - Java

vbmaster - Scheme

mogers - Prolog

djthyrax - Python

djthyrax - PHP

djthyrax - C

TheDark - C++

djthyrax - JavaScript

zeroonnet - C++

zeroonnet - C#

TheDark - MatLab

mogers - C

djthyrax - PHP

Hipnoted - Prolog

Share this post


Link to post
Share on other sites
skin
<?
for($i=1; $i<=100; $i++) {
if( $i%3 == 0 ) echo "Fizz";
if( $i%5 == 0 ) echo "Buzz";
if( ($i%3 != 0) and ($i%5 != 0) ) echo $i;
echo "<br />";
}

?>


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
Gooden

  Dim x As Integer
        For x = 1 To 100
            If x Mod 3 = 0 Then
                ListBox1.Items.Add("Fizz")
            ElseIf x Mod 5 = 0 Then
                ListBox1.Items.Add("Buzz")
            Else
                ListBox1.Items.Add(x)
            End If
        Next x

skin -.-

Share this post


Link to post
Share on other sites
skin

<script type="text/javascript">
var i;
for( i=1; i<=100; i++ ) {
var num3 = 3;
var num5 = 5;

fizz = i%num3
buzz = i%num5;

if(fizz == 0) {
	document.write("Fizz");
}

if(buzz == 0) {
	document.write("Buzz");
}

if( fizz != 0 && buzz != 0 ) {
	document.write(i);
} 

document.write("<br />");

}
</script>

:P


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
skin

E para mostrar que ando a investir em C  :P

#include <stdio.h>

int main(void)
{
int I, num3, num5, buzz, fizz;
for(I=1; I<=100; I++) {
	num3 = 3;
	num5 = 5;

	buzz = I%num3;
	fizz = I%num5;
                             if(fizz == 0) printf("Fizz");
	if(buzz == 0) printf("Buzz");
	if((buzz != 0) && (fizz != 0)) printf("%d ", I);

	printf("\n");
}




return 0;
}

Skin power  :P


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
vbmaster

  Dim x As Integer
        For x = 1 To 100
            If x Mod 3 = 0 Then
                ListBox1.Items.Add("Fizz")
            ElseIf x Mod 5 = 0 Then
                ListBox1.Items.Add("Buzz")
            Else
                ListBox1.Items.Add(x)
            End If
        Next x

skin -.-

Nesse caso os múltiplos de ambos ficam em linhas diferentes e não FizzBuzz certo?

Share this post


Link to post
Share on other sites
skin

#!/usr/bin/perl

for($i=1;$i<=100;$i++) {
if($i%3 == 0) { print "Fizz"; }
if($i%5 == 0) { print "Buzz"; }
if(($i%3 != 0) && ($i%5 != 0)) { print $i; }

print "\n";
}

PERL POWER :P


Our lives begin to end the day we become silent about things that matter - Martin Luther King

Share this post


Link to post
Share on other sites
Betovsky
main = mapM_ (putStrLn . fun) [1..100]
   where fun x | x `mod` 15 == 0 = "FizzBuzz"
               | x `mod` 5  == 0 = "Buzz"
               | x `mod` 3  == 0 = "Fizz"
               | otherwise       = show x


"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Share this post


Link to post
Share on other sites
magician

Fica aqui a minha solução em Ruby

1.upto(100) do |i|
  if (i % 3).zero?: printf "Fizz" end
  if (i % 5).zero?: printf "Buzz" end
  if (i % 5).nonzero? && (i % 3).nonzero?: printf("%d",i) end
  printf("\n")
end


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
magician

Solução em Java

public class FizzBuzz {
    
    public static void main(String args []){
        for(int i = 1; i <= 100; i++){
            if( (i % 3) == 0 ){
                System.out.print("Fizz");
            }
            else if( (i % 5) == 0 ){
                System.out.print("Buzz");
            }
            else if( (i % 3) != 0 && (i % 5) != 0 ){
                System.out.print(i);
            }
            System.out.println();
        }
    }
    
}


I haven’t lost my mind; it’s backed up on DVD somewhere!

Share this post


Link to post
Share on other sites
vbmaster

(define (fb start end)
(if (<= start end)
              (begin
                (cond 
                  ((= 0 (remainder start 15))
                   (display "FizzBuzz"))
                  ((= 0 (remainder start 3))
                   (display "Fizz"))
                  ((= 0 (remainder start 5))
                   (display "Buzz"))
                  (else (display start)))
                (newline)
                (fb (+ start 1) end))))

É só chamar com (fb 1 100).

Share this post


Link to post
Share on other sites
JoaoRodrigues

Mais logo mando a posta de python neste post :confused:

for number in range(1,100):
    if number % 15 == 0:
        print 'FizzBuzz'
    elif number % 5 == 0:
        print 'Buzz'
    elif number % 3 == 0:
        print'Fizz'
    else:
        print number

Share this post


Link to post
Share on other sites
mogers

Em Prolog :confused:

divby(N , D):- 0 is N mod D .
printNum( N ):- (	( divby(N,15) , write('FizzBuzz') ) ; 
		( divby(N,3) , write('Fizz') ) ; 
		( divby(N,5) , write('Buzz') ) ; 
		write(N)
	) , nl .

fizzbuzz( F , F ):- printNum(F).
fizzbuzz( N , F ):-
printNum(N),
Next is N+1 , 
fizzbuzz( Next , F ).

chamar fizzbuzz(1,100).


"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Share this post


Link to post
Share on other sites
djthyrax
def FizzBuzz(x, y):
    for i in range(x, y+1):
        x = ""
        if i % 3: x += "Fizz"
        if i % 5: x += "Buzz"
        if x != "": print x
        else: print i

FizzBuzz(1, 100)
        

djthyrax - Python


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
djthyrax

<?php
function FizzBuzz($x, $y){
for($x; $x<=$y; $x++) echo ($x % 3 ? ($x % 5 ? $x : "Buzz") : ($x % 5 ? "Fizz" : "FizzBuzz"))."\n";
}

FizzBuzz(1, 100);

djthyrax - PHP


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
djthyrax

#include <stdio.h>

int main() {
int i;
for(i = 1; i <= 100; i++){
	if(i % 3){
		if(i % 5)
			printf("%i\n", i);
		else
			printf("%s\n", "Buzz");
	}else{
		if(i % 5)
			printf("%s\n", "Fizz");
		else
			printf("%s\n", "FizzBuzz");
	}
}

return 0;
}

djthyrax - C


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
TheDark

C++

#include <iostream>

using namespace std;

int main() {
char num[5];
for (int i=1; i<=100; ++i) {
	_itoa_s(i, num, 5, 10);
	cout << ((i%3 == 0) ? ((i%5 == 0) ? "FizzBuzz" : "Fizz" ) : ((i%5 == 0) ? "Buzz" : num )) << '\n';
}
}


Desaparecido.

Share this post


Link to post
Share on other sites
djthyrax
var FizzBuzz = (function(x, y){
	for(x; x<=y; x++) document.write((x % 3 ? (x % 5 ? x : "Buzz") : (x % 5 ? "Fizz" : "FizzBuzz")) + "\n");
});
FizzBuzz(1, 100);

djthyrax - JavaScript


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
zeroonnet

Em C++ e C# xD

for (int x = 1; x <= 100; x++)
{
if (x % 3 == 0)
	std::cout << "Fizz";
       if (x % 5 == 0)
	std::cout << "Buzz";
if (x % 3 != 0 && x % 5 != 0)
	std::cout << x;
        std::cout << std::endl;
}

for (int x = 1; x <= 100; x++)
{
if (x % 3 == 0)
	Console.Write("Fizz");
if (x % 5 == 0)
	Console.Write("Buzz");
if (x % 3 != 0 && x % 5 != 0)
	Console.Write(x);
Console.WriteLine();
}

Share this post


Link to post
Share on other sites
mogers

Uma abordagem um pouco diferente em C:

#include <stdio.h>

unsigned char i , soma[101] , desc[][10] = { "" , "Fizz" , "Buzz" , "FizzBuzz" };

int main() {

for ( i = 3 ; i <= 100 ; i+=3 )	soma[i] |= 1 ;
for ( i = 5 ; i <= 100 ; i+=5 )	soma[i] |= 2 ;
for ( i = 1 ; i <= 100 ; i++  )
	soma[i] == 0 ? printf("%d\n" , i ) : printf("%s\n", desc[ soma[i] ] );
return 0;
}


"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.