力扣9. Fizz Buzz 问题(if分类)

力扣9. Fizz Buzz 问题

https://www.lintcode.com/problem/fizz-buzz/description

给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:

  • 如果这个数被3整除,打印fizz.
  • 如果这个数被5整除,打印buzz.
  • 如果这个数能同时被35整除,打印fizz buzz.
  • 如果这个数既不能被 3 整除也不能被 5 整除,打印数字本身。

思路:if分类

#include "stdafx.h"
#include <string>
#include <vector>
using namespace std;
class Solution {
public:
	/**
	* @param n: An integer
	* @return: A list of strings.
	*/
	vector<string> fizzBuzz(int n)
	{
		// write your code here
		vector<string>result;
		for (int i = 1; i <= n; i++)
		{
			if (i%15==0)
			{
				result.push_back("fizz buzz");
			}
			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;
	}
};

int main()
{
	Solution s;
	auto result = s.fizzBuzz(15);
	return 0;
}

int与字符串string转化

一、to_string函数

c++11标准增加了全局函数std::to_string:

string to_string (int val);

string to_string (long val);

string to_string (long long val);

string to_string (unsigned val);

string to_string (unsigned long val);

string to_string (unsigned long long val);

string to_string (float val);

string to_string (double val);

string to_string (long double val);

二、借助字符串流

标准库定义了三种类型字符串流:istringstream,ostringstream,stringstream,看名字就知道这几种类型和iostream中的几个非常类似,分别可以读、写以及读和写string类型,它们也确实是从iostream类型派生而来的。要使用它们需要包含sstream头文件。

除了从iostream继承来的操作

  1.sstream类型定义了一个有string形参的构造函数,即:  stringstream stream(s); 创建了存储s副本的stringstream对象,s为string类型对象

  2.定义了名为str的成员,用来读取或设置stringstream对象所操纵的string值:stream.str(); 返回stream中存储的string类型对象stream.str(s); 将string类型的s复制给stream,返回void

int aa = 30;
string s1;
stringstream ss;
ss<<aa; 
ss>>s1;
cout<<s1<<endl; // 30
发布了23 篇原创文章 · 获赞 0 · 访问量 137

猜你喜欢

转载自blog.csdn.net/qq_35683407/article/details/105400106