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”.

示例:

n = 15,

Return:
[
    "1",
    "2",
    "Fizz",
    "4",
    "Buzz",
    "Fizz",
    "7",
    "8",
    "Fizz",
    "Buzz",
    "11",
    "Fizz",
    "13",
    "14",
    "FizzBuzz"
]

问题分析:

主要看n以内的每个数是否为3和5的倍数,按照要求,相应求解即可。

过程详见代码:


class Solution {
public:
    vector<string> fizzBuzz(int n) {
        vector<string> res;
        for(int i = 1; i <= n; i++)
        {
        	stringstream ss;
        	ss << i;
        	if(i % 3 == 0 && i % 5 == 0) res.push_back("FizzBuzz");
        	else if(i % 5 == 0) res.push_back("Buzz");
        	else if(i % 3 == 0) res.push_back("Fizz");
        	else res.push_back(ss.str());
		}
		return res;
    }
};



版权声明:本文为u011809767原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。