FizzBuzz

Stato
Discussione chiusa ad ulteriori risposte.

stoner

Utente Silver
2 Marzo 2008
45
0
0
62
Scrivere un programma che visulizzi i numeri da 1 a 100 (estremi inclusi). Ma per i multipli di tre stampi Fizz, per i multipli di cinque stampi Buzz, per i multipli di tre e cinque stampi FizzBuzz.
N.B. Scrivere il programma SENZA USARE if, switch o l'operatore ternario ? : .

Il mio, C++:
[ot]
Codice:
#include <iostream>
 
char* put(int i,int v) {
    char r[3]={0};
    char* V[] = { itoa(i,r,10), "Fizz", "Buzz", "FizzBuzz"};
 
    return V[v];
}
 
int main() {
 
    for(int i=1;i<=100;i++)
        std::cout<<put(i,((3-i%3)/3)+((5-i%5)/5)*2)<<std::endl;
 
    return 0;
}
[/ot]
 
io ho sfruttato una scappatoia...uhahahahaha (non testato)

Codice:
#include <iostream>
using std::cout;

int main()
  {
     for (int i=1; i<=100; i++) {
         while ((i%3!=0) && (i%5!=0)) {cout << i; break;}
         while (i%3==0) {cout << "Fizz"; break;}
         while (i%5==0) {cout << "Buzz"; break;}
         cout << endl;
         }
      return 0;
  }
 
eheh anche io in perl ho usato una scappatoia :asd:

Codice:
#!/usr/bin/perl
#FizzBuzz

print q(
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
39
FizzBuzz
41
Fizz
43
44
FizzBuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz);
 
c++
[ot]
Codice:
#include <cstdlib>
#include <iostream>
#include <string.h>

using namespace std;

char* wat(int i);
int main(int argc, char *argv[])
{
    for (int i=1;i<=100; i++) cout<< wat(i) <<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

char* wat(int i){
  char buff[9];
  int j;
  for (j=i;(i==j)&&(i%3==0)&&(i%5==0);j++) return "FizzBuzz";
  for (j=i;(i==j)&&(i%3==0);j++) return "Fizz";
  for (j=i;(i==j)&&(i%5==0);j++) return "Buzz";
  itoa(i,buff,10);
  return buff;
}
[/ot]
 
Ecco in PHP:
PHP:
<?php
for($i=1;$i<=100;$i++)
{
	while(($i%3!=0) and ($i%5!=0))
	{
		echo $i;
		break;
	}
	while($i%3==0)
	{
		echo 'Fizz';
		break;
	}
	while(($i%5==0))
	{
		echo 'Buzz';
		break;
	}
	echo '<br>';
}
?>
 
PHP:
PHP:
<?php
for ($i=1;$i<=100;$i++) {
	for ($x=$i;($x%3==0);$x++) {
		print 'Fizz';
		break;
	}
	
	for ($x=$i;($x%5==0);$x++) {
		print 'Buzz';
		break;
	}
	
	for ($x=$i;($x%3==0&&$x%5==0&&$x!=$i);$x++){
		print 'FizzBuzz';
		break;
	}
	echo '<br />';
}
?>
 
Non è che cambi molto e comunque puoi risparmiarti le parentesi a:
- ($x%3==0);
- ($x%5==0).

Poi non funziona e non funzionerà mai, ecco il codice esatto:
PHP:
<?php
for ($i=1;$i<=100;$i++) {
    for ($x=$i;$x%3==0;$x++) {
        print 'Fizz';
        break;
    }
    
    for ($x=$i;$x%5==0;$x++) {
        print 'Buzz';
        break;
    }
    
    for ($x=$i;$x%3!=0 && $x%5!=0;$x++){
        print $i;
        break;
    }
    echo '<br />';
}
?>
 
[C++]
Codice:
#include <iostream>
using namespace std;
int main() {
  int i=1;
  for(i;i<=100;i++) {
    while(i%3==0) {
      cout << "Fizz";
      break;
    }
    while(i%5==0) {
      cout << "Buzz";
      break;
    }
    while(i%3!=0 && i%5!=0) {
    cout << i;
    break;
    }
    cout << "\n";
  }
  return 0;
}
 
no, opo, così mi sa che ti stampa fizzbuzzfizzbuzz se dovrebbe stampare fizzbuzz, perchè breakki il while, non il for...
 
@shura: guarda che il codice funziona perfettamente. L'unica cosa che non faceva è mostrare il numero quando non era ne multiplo di 3 ne multiplo di 5...
Questo lo fa:
PHP:
<?php
for ($i=1;$i<=100;$i++) {
	$f=0;
    for ($x=$i;($x%3==0);$x++) {
        print 'Fizz';$f=1;
        break;
    }
    
    for ($x=$i;($x%5==0);$x++) {
        print 'Buzz';$f=1;
        break;
    }
    
    for ($x=$i;($x%3==0&&$x%5==0&&$x!=$i);$x++){
        print 'FizzBuzz';$f=1;
		break;
    }
	for ($y=$f;($y==0);$y++) {
		print $i;
		break;
	}
    echo '<br />';
}
?>

E funziona:
Codice:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
[...]
 
lepa ha detto:
lol, opo, ma l'hai visto il mio?
È identico al mio, ma io ho gli OT disabilitati con JavaScript, quindi è puro caso xD
ShuraBozz ha detto:
opo non ci credo, mi hai rimasto senza parole...

Ti ho rimasto? xD
Comunque perché? Perché è in C++?
 
Stato
Discussione chiusa ad ulteriori risposte.