题目:
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" ]
翻译:
写一个程序能够输出从数字1到n的字符串表示。
但是对于三的倍数要输出”Fizz“而不是数字,对于五要输出”Buzz“。对于既是三又是五的倍数的数字输出”Fizz Buzz“。
例子:
n = 15, Return: [ "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz" ]
思路:
思路简单,不说了,直接看代码。
C++代码(Visual Studio 2017):
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> result;
for (int i = 1; i <= n; i++) {
if ((i % 3 == 0) && (i % 5 == 0)) {
result.push_back("FizzBuzz");
continue;
}
if (i % 3 == 0) {
result.push_back("Fizz");
continue;
}
if (i % 5 == 0) {
result.push_back("Buzz");
continue;
}
else {
result.push_back(to_string(i));
}
}
return result;
}
};
int main()
{
Solution s;
int n = 15;
vector<string> result;
result = s.fizzBuzz(n);
for (int i = 0; i < result.size(); i++) {
cout << result[i] << " ";
}
return 0;
}