View Code of Problem 99

#include <bits/stdc++.h>
using namespace std;

string str;
int nums[5];
int n;

void getNum2(string s) {
	int sum = 0;
	for(int i = 0; i < s.length(); i++) {
		sum = sum * 10 + (s[i] - '0');
	}
	nums[n++] = sum;
}

void getNum1() {
	int len = str.length();
	int pre = 0;
	for(int i = 0; i <= len; i++) {
		if(str[i] == ' ' || str[i] == '\0') {
			string ss = str.substr(pre, i - pre); // substr两个参数分别为 起始字符 与 截取长度
			getNum2(ss);
			pre = i + 1;
		}
	}
}

int main() {
	while(getline(cin, str) && str[0] != '0') {
		getNum1();
		switch (n) {
			case 1:
				for(int i = 1; i <= nums[0]; i++) {
					if(i == 1) cout << i;
					else cout << " " << i; 
				}
				cout << endl;
				n = 0;
				break;
			case 2:
				if(nums[0] < nums[1]) {
					for(int i = nums[0]; i <= nums[1]; i++) {
						if(i == nums[0]) cout << i;
						else cout << " " << i;
					}
				}
				else {
					for(int i = nums[0]; i >= nums[1]; i--) {
						if(i == nums[0]) cout << i;
						else cout << " " << i;
					}
				}
				cout << endl;
				n = 0;
				break;
			case 3:
				if(nums[0] < nums[1]) {
					for(int i = nums[0]; i <= nums[1]; i += nums[2] + 1) {
						if(i == nums[0]) cout << i;
						else cout << " " << i;
					}
				}
				else {
					for(int i = nums[0]; i >= nums[1]; i -= nums[2] + 1) {
						if(i == nums[0]) cout << i;
						else cout << " " << i;
					}
				}
				cout << endl;
				n = 0;
				break;
			default:
				break;
		}
		
		n = 0;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 99