LiteCode-Fizz Buzz(single if)

Description

Given number n. Print number from 1 to n. But:

  • when number is divided by 3, print "fizz".
  • when number is divided by 5, print "buzz".
  • when number is divided by both 3 and 5, print "fizz buzz".

Example

If n = 15, you should return:

[
  "1", "2", "fizz",
  "4", "buzz", "fizz",
  "7", "8", "fizz",
  "buzz", "11", "fizz",
  "13", "14", "fizz buzz"
]
  • 题目模板

    class Solution {
    public:
      /**
       * @param n: An integer
       * @return: A list of strings.
       */
      vector<string> fizzBuzz(int n) {
          // write your code here
      }
    };
    
  • 题目大意

    题目很简单,在1到n的数字中,能被3和5整除输出”fizz buzz”,能被3整除输出”fizz”,能被5整除输出”buzz”。那么难点在于怎么只用一个if实现。下面先给出正常的代码,再给出一个if版。

  • 大体思路

    正常版

    class Solution {
    public:
      /**
       * @param n: An integer
       * @return: A list of strings.
       */
      vector<string> fizzBuzz(int n) {
          // write your code here
          vector<string> v;
          for(int i=1; i<=n; i++){
            if((i%3==0) && (i%5==0))
              v.push_back("fizz buzz");
            else if(i % 3 == 0)
              v.push_back("fizz");
            else if(i % 5 == 0)
              v.push_back("buzz");
            else
              v.push_back(to_string(i));
          }
          return v;
      }
    };
    

    一个if版

    先说下大体思路,就是先把数字全部填进去,然后再对3的倍数进行修改,最后对5的倍数进行修改的时候判断下是否也是3的倍数就可以了。

    class Solution {
    public:
      /**
       * @param n: An integer
       * @return: A list of strings.
       */
      vector<string> fizzBuzz(int n) {
          // write your code here
          vector<string> v;
          for(int i=1; i<=n; i++)
            v.push_back(to_string(i));
    
          for(int i=1; (3*i)<=n; i++)
            v[3*i-1] = "fizz";
    
          for(int i=1; (5*i)<=n; i++){
            if((5*i)%3 == 0)
              v[5*i-1] += " buzz";
            else
              v[5*i-1] = "buzz";
          }
          return v;
      }
    };
    
  • 题目链接 https://www.lintcode.com/problem/fizz-buzz/description

猜你喜欢

转载自blog.csdn.net/qq_24889575/article/details/81673440