原题链接:https://leetcode.com/problems/fizz-buzz/
原题:
Write a program that outputs the string representation of numbers from 1 to n.
But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.
Example:
n = 15,
Return:
[
"1",
"2",
"Fizz",
"4",
"Buzz",
"Fizz",
"7",
"8",
"Fizz",
"Buzz",
"11",
"Fizz",
"13",
"14",
"FizzBuzz"
]
题意:给你一个数字n,要你输出1到n之间的所有数字的字符串组成的数组,不要要把数字中3的倍数的字符串换成Fizz,把5的倍数的字符串换成Buzz,把3和5共同的倍数换成FizzBuzz。
思路:
没什么好说的,就是几个判断语句,不过我用到一个c++11中新加入的to_string()函数 (在string头文件中)
具体看http://www.cplusplus.com/reference/string/to_string/
也可以用另外的sprintf
AC代码:
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> result;
for(int i=1;i<=n;i++){
if(i%15==0) result.push_back("FizzBuzz");
else if(i%3==0) result.push_back("Fizz");
else if(i%5==0) result.push_back("Buzz");
else result.push_back(to_string (i));
}
return result;
}
};