Fizz Buzz 问题 无if语句实现
原题:
给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:
如果这个数被3整除,打印fizz.
如果这个数被5整除,打印buzz.
如果这个数能同时被3和5整除,打印fizz buzz.
如果这个数既不能被 3 整除也不能被 5 整除,打印数字本身。
解答:
只需要最开始时在字符串数组手动添加第一个元素(如“0”),这样再向数组添加1~n后,其数值大小就是所在字符串数组的下标,这样再操作就方便了。在对3、5、15的倍数操作结束后,再删去字符串数组的第一个元素(我这是“0”)即可。 代码如下:
public class Solution { public List fizzBuzz(int n) {
// write your code here
List list = new ArrayList();
list.add(String.valueOf(0));
int i;
for(i=1;i<=n;i++)
{
list.add(String.valueOf(i));
}
for(i=0;i<=n;i=i+3)
{
list.set(i,“fizz”);
}
for(i=0;i<=n;i=i+5)
{
list.set(i,“buzz”);
}
for(i=0;i<=n;i=i+15)
{
list.set(i,“fizz buzz”);
}
list.remove(0);
return list;
}
}