FizzBuzz
问题描述
假设有这样一个场景:你今年11岁了,在下课前的五分钟,你的数学老师决定给大家玩个"游戏"来让课堂气氛更"有趣"。他让大家起立,他会并轮流指向每位学生,
指到谁,谁就报数,从1开始。 游戏的"有趣"之处在于,如果这个数可以被3整除,你就要改为说"Fizz",如果能被5整除,就改为说"Buzz"。
现在,你的数学老师开始轮流指向每个同学,他们开心的喊出"1!"、"2!"、"Fizz!"、"4!"、"Buzz!"...
现在,他故意指向你,时间静止了...你卡壳了,你手心冒汗,最后,你终于说出"Fizz!"。逃过一劫,手指继续指向别人。
现在,为了避免当众出丑,你需要把完整的清单打印出来,这样的话,你就知道你该说什么了。你们班大概有33名学生,他可能会在下课铃响之前把每个人指三遍。
下次数学课是在周四,请你开始写代码,打印从1到100的数字,但是3的倍数要打印"Fizz"而不是数字,同样,5的倍数要打印"Buzz"。如果同时是3和5的倍数,
打印"FizzBuzz"。
示例输出:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
...
方法1
import java.util.*
public class FizzBuzz{
public static List
List
for(int i=1;i<=num;i++){
if(i%3==0){
str+="Fizz";
}
if(i%5==0){
str+="Buzz";
}
if(str==""){
result.add(Integer.toString(i));
}
else{
result.add(str);
}
return result;
}
}
public static void main(String[] args){
int num=100;
//Scanner sc = new Scanner(System.in);
//int num=sc.nextInt();
List
//System.out.println(result);
Iterator it=result.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
方法2
import java.util.*
public class FizzBuzz{
public static List
List
HashMap
Dict.put(3,"Fizz");
Dict.put(5,"Buzz");
for(int i=1;i<=num;i++){
String str="";
Set
Iterator
while(it.hasNext()){
int temp=it.next();
String tempstr=String.valueOf(temp);
if(i%temp==0){
str+=Dict.get(temp);
}
}
if(str==""){
result.add(Integer.toString(i));
}
else{
result.add(str);
}
return result;
}
}
public static void main(String[] args){
int num=100;
//Scanner sc = new Scanner(System.in);
//int num=sc.nextInt();
List
//System.out.println(result);
Iterator it=result.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
扩展:
如果数字能被3整除,或者数字中包含3,就说fizz。
如果数字能被5整除,或者数字中包含5,就说buzz。
扩展1
import java.util.*
public class FizzBuzz{
public static List
List
for(int i=1;i<=num;i++){
if(i%3==0||String.valueOf(i).contains("3")){
str+="Fizz";
}
if(i%5==0||String.valueOf(i).contains("5")){
str+="Buzz";
}
if(str==""){
result.add(Integer.toString(i));
}
else{
result.add(str);
}
return result;
}
}
public static void main(String[] args){
int num=100;
//Scanner sc = new Scanner(System.in);
//int num=sc.nextInt();
List
//System.out.println(result);
Iterator it=result.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
扩展2
import java.util.*
public class FizzBuzz{
public static List
List
HashMap
Dict.put(3,"Fizz");
Dict.put(5,"Buzz");
for(int i=1;i<=num;i++){
String str="";
Set
Iterator
while(it.hasNext()){
int temp=it.next();
String tempstr=String.valueOf(temp);
if(i%temp==0||String.valueOf(i).contains(tempstr)){
str+=Dict.get(temp);
}
}
if(str==""){
result.add(Integer.toString(i));
}
else{
result.add(str);
}
return result;
}
}
public static void main(String[] args){
int num=100;
//Scanner sc = new Scanner(System.in);
//int num=sc.nextInt();
List
//System.out.println(result);
Iterator it=result.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}



