美文网首页
lintCode题解(9)

lintCode题解(9)

作者: Sivin | 来源:发表于2018-05-05 14:07 被阅读47次

    标签(空格分隔): lintCode


    Fizz Buzz 问题

    描述:

    给你一个整数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) {
           vector<string> result;
            stringstream ss("");
            string val;
            for (int i = 1; i < n + 1; i++) {
                val = (i % 15 == 0 ? "fizz buzz" : (i % 3 == 0 ? "fizz" : (i % 5 == 0 ? "buzz" : "")));
                if (val.length() == 0) {
                    ss.clear();
                    ss << i;
                    ss >> val;
                    ss.str("");
                }
                result.push_back(val);
            }
            return result;
        }
    };
    

    相关文章

      网友评论

          本文标题:lintCode题解(9)

          本文链接:https://www.haomeiwen.com/subject/txasrftx.html