首页 > 代码库 > POJ 1107

POJ 1107

水题一道,注意取模时不能为0

#include <iostream>#include <algorithm>#include <cstring>#include <string.h>#include <cstdio>using namespace std;char s[150];char ans1[150],ans2[150],ans3[150];int mark[150];int p1,p2,p3;int main(){	int k1,k2,k3;	while(scanf("%d%d%d",&k1,&k2,&k3),k1||k2||k3){		int b1,b2,b3;		b1=b2=b3=0;		p1=p2=p3=0;		scanf("%s",s);		for(int i=0;s[i]!=‘\0‘;i++){			if(s[i]>=‘a‘&&s[i]<=‘i‘){				mark[i]=1;				ans1[p1++]=s[i];			}			else if(s[i]>=‘j‘&&s[i]<=‘r‘){				mark[i]=2;				ans2[p2++]=s[i];			}			else{				mark[i]=3;				ans3[p3++]=s[i];			}		}		if(p1!=0)		b1=((0-k1)%p1+p1)%p1;		if(p2!=0)		b2=((0-k2)%p2+p2)%p2;		if(p3!=0)		b3=((0-k3)%p3+p3)%p3;		for(int i=0;s[i]!=‘\0‘;i++){			if(mark[i]==1){				printf("%c",ans1[b1]);				b1=(b1+1);				if(p1!=0)				b1%=p1;			}			else if(mark[i]==2){				printf("%c",ans2[b2]);				b2=(b2+1);				if(p2!=0)				b2%=p2;			}			else{				printf("%c",ans3[b3]);				b3=(b3+1);				if(p3!=0)				b3%=p3;			}		}		printf("\n");	}	return 0;}

  

POJ 1107