50pts,求助!
查看原帖
50pts,求助!
717971
liuyi0905楼主2023/6/24 14:30
#include<bits/stdc++.h>
using namespace std;
int is_zifu(char x){
	if(x>='0'&&x<='9')return 1;
	if(x>='a'&&x<='z')return 2;
}
int main(){
	int p1,p2,p3;
	string s;
	cin>>p1>>p2>>p3>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]==s[i+2]&&s[i+1]=='-')cout<<s[i]<<s[i+1]<<s[i+2],i+=2;
		else if(s[i]+1==s[i+2]&&s[i+1]=='-')cout<<s[i]<<s[i+2],i+=2;
		else if(is_zifu(s[i])==2&&is_zifu(s[i+2])==2&&s[i+1]=='-'){
			cout<<s[i];
			if(p1==1){
				if(p3==1)
					for(char j=s[i]+1;j<s[i+2];j++)
						for(int k=1;k<=p2;k++)cout<<j;
				else
					for(char j=s[i+2]-1;j>s[i];j--)
						for(int k=1;k<=p2;k++)cout<<j;		
			}
			else if(p1==2){
				if(p3==1)
					for(char j=s[i]+1-32;j<s[i+2]-32;j++)
						for(int k=1;k<=p2;k++)cout<<j;
				else
					for(char j=s[i+2]-1-32;j>s[i]-32;j--)
						for(int k=1;k<=p2;k++)cout<<j;							
			}
			else{
				for(char j=s[i]+1;j<s[i+2];j++)
					for(int k=1;k<=p2;k++)cout<<"*";
			}
			cout<<s[i+2];
			i+=2;
		}
		else if(is_zifu(s[i])==is_zifu(s[i+2])&&s[i+1]=='-'){
			cout<<s[i];
			if(p1==1){
				if(p3==1)
					for(char j=s[i]+1;j<s[i+2];j++)
						for(int k=1;k<=p2;k++)cout<<j;
				else
					for(char j=s[i+2]-1;j>s[i];j--)
						for(int k=1;k<=p2;k++)cout<<j;										
			}
			else{
				for(char j=s[i]+1;j<s[i+2];j++)
					for(int k=1;k<=p2;k++)cout<<"*";				
			}
			cout<<s[i+2];
			i+=2;
		}
		else cout<<s[i];
	}
    return 0;
}

代码有点丑,勿喷

2023/6/24 14:30
加载中...