提示
LintCode中的相关算法题实现代码,可以在我的GitHub中下载。
题目需求
描述
给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:
- 如果这个数被3整除,打印
fizz
. - 如果这个数被5整除,打印
buzz
. - 如果这个数能同时被
3
和5
整除,打印fizz buzz
.
您在真实的面试中是否遇到过这个题?
是
样例
比如 n = 15
, 返回一个字符串数组:
[
"1", "2", "fizz",
"4", "buzz", "fizz",
"7", "8", "fizz",
"buzz", "11", "fizz",
"13", "14", "fizz buzz"
]
挑战
Can you do it with only one if
statement?
解题思路
主要的思路是根据条件进行判断即可
实现代码
class Solution {
public:
/**
* @param n: An integer
* @return: A list of strings.
*/
vector<string> fizzBuzz(int n) {
// write your code here
vector<string> result;
for(int i=1;i<=n;i++)
{
if(i%3==0&&i%5!=0)
{
result.push_back("fizz");
}
else if(i%3!=0&&i%5==0)
{
result.push_back("buzz");
}
else if(i%3==0&&i%5==0)
{
result.push_back("fizz buzz");
}else
{
result.push_back(to_string(i));
}
}
return result;
}
};