天天看点

hdu 2137 circumgyrate the string

#include<string.h>
#include<stdio.h>

int main()
{
    char str[100];
    int n;
    int k;

    while(scanf("%s",str)==1)//用C++wrong了,每个地方是过去之后发现是这里错了,C++while(cin>>str>>n)输入会wrong,不知道为什么
    {
        k=strlen(str);
        scanf("%d",&n);
        n=n%8;
        
        if(n<0)
        n=n+8;
        
        if(n==0)
        {
            printf("%s\n",str);
        }
        else if(n==1)
        {
            for(int i=k-1;i>=0;i--)//k=7
            {
                for(int j=i;j>0;j--)
                printf(" ");
                printf("%c\n",str[i]);
            }
        }
        else if(n==2)
        {
            for(int i=k-1;i>=0;i--)
            {
                for(int j=0;j<k/2;j++)
                printf(" ");
                printf("%c\n",str[i]);
            }
        }
        else if(n==3)
        {
            for(int i=k-1;i>=0;i--)
            {
                for(int j=k-1;j>i;j--)
                printf(" ");
                printf("%c\n",str[i]);
            }
        }
        else if(n==4)
        {
            for(int i=k-1;i>=0;i--)
            printf("%c",str[i]);
            printf("\n");
        }
        else if(n==5)
        {
            for(int i=0;i<=k-1;i++)
            {
                for(int j=i+1;j<k;j++)
                printf(" ");
                printf("%c\n",str[i]);
            }
        }
        else if(n==6)
        {
            for(int i=0;i<=k-1;i++)
            {
                for(int j=0;j<k/2;j++)
                printf(" ");
                printf("%c\n",str[i]);
            }
            
        }
        else if(n==7)
        {
            for(int i=0;i<=k-1;i++)
            {
                for(int j=0;j<i;j++)
                printf(" ");
                printf("%c\n",str[i]);
            }
        }
   
    }
    return 0;
}