您的位置:首页 > 其它

报数游戏

2016-04-08 00:00 411 查看
摘要: 报数游戏

import java.io.InputStreamReader;
import java.util.Scanner;

public class Game {
public static Integer NUM_A = 0;
public static Integer NUM_B = 0;
public static Integer NUM_C = 0;

public static void main(String[] args) {
if (!in()) {
init();
} else {
System.out.println("输入的数字格式或大小不正确");
}
}

public static boolean in() {
System.out.print("请输入特殊数字,中间用逗号分隔:");
Scanner sc = new Scanner(new InputStreamReader(System.in));
String nums[] = sc.nextLine().split(",");
sc.close();
boolean f = false;
if (nums.length != 3) {
return f;
}
for (String t : nums) {
if (Integer.parseInt(t) > 9) {
f = true;
break;
}
}
if (!f) {
NUM_A = Integer.parseInt(nums[0]);
NUM_B = Integer.parseInt(nums[1]);
NUM_C = Integer.parseInt(nums[2]);
}

return f;
}

public static void init() {
String[] result = new String[100];
for (int i = 1; i < 101; i++) {
if ((i + "").contains(NUM_A + "")) {
result[i - 1] = "Fizz";
} else {
boolean f = false;
if (i % NUM_A == 0) {
result[i - 1] = "Fizz";
f = true;
}
if (i % NUM_B == 0) {
result[i - 1] = "Buzz";
f = true;
}
if (i % NUM_C == 0) {
result[i - 1] = "Whizz";
f = true;
}
if (i % NUM_A == 0 && i % NUM_B == 0) {
result[i - 1] = "FizzBuzz";
f = true;
}
if (i % NUM_A == 0 && i % NUM_C == 0) {
result[i - 1] = "FizzWhizz";
f = true;
}
if (i % NUM_B == 0 && i % NUM_C == 0) {
result[i - 1] = "BuzzWhizz";
f = true;
}
if (i % NUM_A == 0 && i % NUM_B == 0 && i % NUM_C == 0) {
result[i - 1] = "FizzBuzzWhizz";
f = true;
}
if (!f) {
result[i - 1] = i + "";
}
}
}
for (String t : result) {
System.out.println(t);
}
}
}

/**
*你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。此时有100名学生在上课。游戏的规则是:

1. 你首先说出三个不同的特殊数,要求必须是个位数,比如3、5、7。

2. 让所有学生拍成一队,然后按顺序报数。

3. 学生报数时,如果所报数字是第一个特殊数(3)的倍数,那么不能说该数字,而要说Fizz;如果所报数字是第二个特殊数(5)的倍数,那么要说Buzz;如果所报数字是第三个特殊数(7)的倍数,那么要说Whizz。

4. 学生报数时,如果所报数字同时是两个特殊数的倍数情况下,也要特殊处理,比如第一个特殊数和第二个特殊数的倍数,那么不能说该数字,而是要说FizzBuzz, 以此类推。如果同时是三个特殊数的倍数,那么要说FizzBuzzWhizz。

5. 学生报数时,如果所报数字包含了第一个特殊数,那么也不能说该数字,而是要说相应的单词,比如本例中第一个特殊数是3,那么要报13的同学应该说Fizz。如果数字中包含了第一个特殊数,那么忽略规则3和规则4,比如要报35的同学只报Fizz,不报BuzzWhizz。

现在,我们需要你完成一个程序来模拟这个游戏,它首先接受3个特殊数,然后输出100名学生应该报数的数或单词。
*
* */

输出:
请输入特殊数字,中间用逗号分隔:3,5,7
1
2
Fizz
4
Buzz
Fizz
Whizz
8
Fizz
Buzz
11
Fizz
Fizz
Whizz
FizzBuzz
16
17
Fizz
19
Buzz
FizzWhizz
22
Fizz
Fizz
Buzz
26
Fizz
Whizz
29
Fizz
Fizz
Fizz
Fizz
Fizz
Fizz
Fizz
Fizz
Fizz
Fizz
Buzz
41
FizzWhizz
Fizz
44
FizzBuzz
46
47
Fizz
Whizz
Buzz
Fizz
52
Fizz
Fizz
Buzz
Whizz
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
BuzzWhizz
71
Fizz
Fizz
74
FizzBuzz
76
Whizz
Fizz
79
Buzz
Fizz
82
Fizz
FizzWhizz
Buzz
86
Fizz
88
89
FizzBuzz
Whizz
92
Fizz
94
Buzz
Fizz
97
Whizz
Fizz
Buzz
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: