【发布时间】:2021-02-18 12:51:24
【问题描述】:
最近我收到了一个不同版本的“fizzbuzz question”,要求您这样做:
实现函数fizzBuzz(n, conditions)
其中 n 是整数,条件是 key: value (number: string) 的映射
您需要对从 1 到 n 的所有数字运行,并且对于每个数字,您需要检查它满足哪些条件,如果不满足则打印该数字,但如果满足条件 X 并且您可以从 Y 获得 X * Z 然后打印唯一的 X 而不是 Y * Z
例子:
input: n = 100
condition = {
3: 'fizz:',
5: 'buzz',
15: 'foo'
}
将打印:1,2,fizz,4,buzz,fizz,7,8,fizz,10,11,fizz,13,14,**foo**
这意味着对于 15,它只会打印 foo。但如果条件对象是:
condition = {
3: 'fizz:',
5: 'buzz',
}
那么输出将是相同的,但在 15 上它会打印“fizzbuzz”(均为 3+5)
示例:
condition = {
2: 'boo',
3: 'fizz:',
5: 'buzz',
}
对于 30 它将打印 boofizzbuzz (2+3+5)
你会怎么解决这个问题?
【问题讨论】:
-
当我们遇到数字说 30,150 和 180
-
自从
12 = 2 * 2 * 3之后,{2: 'boo', 3: 'fizz', 12: 'buzz'}中的12会做什么?是'booboofizz'还是'buzz'?
标签: javascript algorithm fizzbuzz