View Code of Problem 99

#include <iostream>
#include <string>
using namespace std;
int f(string str){
	int s=0;
	for(int i=0;i<str.size();i++){
		if(str[i]==' ')	s++; 
	}
	return s;
} 

int g(char *a){
	int n=0;
	for(int i=0;a[i]>='0'&&a[i]<='9';i++)
		n=n*10+a[i]-'0'; 
	return n;
}
int main() {
	string str;
	while(getline(cin,str)){
		if(str=="0")	break;
		if(f(str)==0){
			int n=stoi(str);
			for(int i=1;i<=n;i++)
				printf("%s%d",i==1?"":" ",i);
			printf("\n"); 
		}
		else if(f(str)==1){
			int n1=0,n2=0;
			char a[3],b[3];
			const char *s=str.c_str();
			sscanf(s,"%s %s",a,b);
			n1=g(a);
			n2=g(b);
			if(n1>=n2){
				for(int i=n1;i>=n2;i--){
					printf("%s%d",i==n1?"":" ",i);	
				}
			}else{
				for(int i=n1;i<=n2;i++){
					printf("%s%d",i==n1?"":" ",i);	
				}
			}
			printf("\n");
		}
		else if(f(str)==2){
			int n1=0,n2=0,n3=0;
			char a[3],b[3],c[3];
			const char *s=str.c_str();
			sscanf(s,"%s %s %s",a,b,c);
			n1=g(a); 
			n2=g(b);
			n3=g(c);
			if(n1>=n2){
				for(int i=n1;i>=n2;i=i-n3-1){
					printf("%s%d",i==n1?"":" ",i);	
				}
			}else{
				for(int i=n1;i<=n2;i=i+n3+1){
					printf("%s%d",i==n1?"":" ",i);	
				}
			}
			printf("\n");
		}
	}
}

Double click to view unformatted code.


Back to problem 99