UVA1584 - Circular Sequence

来源:互联网 发布:阿里云网站怎么用 编辑:程序博客网 时间:2024/04/29 18:31

题目不错,很好的过程,尤其是%n的运用

#include <stdio.h>#include <string.h>#define N 105int less(char *s,int i,int k,int n){    int j;    for(j=0;j<n;j++)    {        if(s[(k+j)%n]>s[(i+j)%n])            return 1;        if(s[(k+j)%n]<s[(i+j)%n])            return 0;    }    return 0;}int main(){    int T;    scanf("%d",&T);    char s[N];    while(T--)    {        memset(s,0,sizeof(s));        scanf("%s",s);        int len=strlen(s);        int i,k=0;        for(i=0;i<len;i++)            if(less(s,i,k,len)) k=i;        for(i=0;i<len;i++)            putchar(s[(i+k)%len]);        putchar(10);    }    return 0;}



0 0
原创粉丝点击