View Code of Problem 99

#include<vector>
#include<iostream>
#include<string>
using namespace std;
vector<int> getData(string a) {
	vector<int> re;
	int bg, end,flag=1;//flag=0表示bg有值
	int temp=0;
	for (int i = 0; i < a.size(); i++)
	{
		if (flag == 1 && a[i] != ' ') {
			bg = i;
			flag = 0;
		}
		if ((i != a.size() - 1 && flag == 0 && a[i] != ' ' && a[i + 1] == ' ')||i==a.size()-1) {
			end = i;
			flag = 1;
			if (bg != end) {
				temp = (a[bg] - '0') * 10 + a[end]-'0';
			}
			else {
				temp =a[end]-'0';
			}
			re.push_back(temp);
		}
	}
	return re;
}
int main() {
	vector <int>data,re;
	string a;
	while (getline(cin, a)) {
		if (a == "0")break;
		data = getData(a);//获取数字
		if (data.size() == 1) {
			for (int i = 1; i <=data[0]; i++)
			{
				cout << i << " ";
				if (i == data[0])cout << endl;
			}
		}
		else if (data.size() == 2) {
			if (data[0] < data[1]) {
				for (int i = data[0]; i <= data[1]; i++)
				{
					cout << i << " ";
					if (i == data[1])cout << endl;
				}
			}
			else {
				for (int i = data[0]; i >= data[1]; i--)
				{
					cout << i << " ";
					if (i == data[1])cout << endl;
				}
			}
			
		}
		else {
			if (data[0] < data[1]) {
				for (int i = data[0]; i <= data[1]; i += data[2] + 1)
				{
					cout << i << " ";
					if (i + data[2] + 1 > data[1])cout << endl;
				}
			}
			else {
				for (int i = data[0]; i >= data[1]; i -= data[2] + 1)
				{
					cout << i << " ";
					if (i -data[2] -1 < data[1])cout << endl;
				}
			}
			
		}
	}
}

Double click to view unformatted code.


Back to problem 99