PAT 乙级 1008 题解 (Basic Level) Practice

版权声明:本文为博主原创文章,转载请说明出处。 https://blog.csdn.net/qq278672818/article/details/83186409

注意m可能大于n,要先求余

#include<stdio.h>
void revesal(int *num, int beg, int len)
{
    int i,temp;
    for(i=0;i<len/2;i++)
    {
        temp = num[i+beg];
        num[i+beg] = num[beg+len-1-i];
        num[beg+len-1-i] = temp;
    }
}

int main()
{
    int n,m,i;
    scanf("%d %d",&n,&m);
    m = m%n;

    int num[n];
    for(i=0;i<n;i++)
        scanf("%d",&num[i]);

    if(n == 1)
    {
        printf("%d",num[0]);
        return 0;
    }

    revesal(num,0,n);
    revesal(num,0,m);
    revesal(num,m,n-m);

    for(i=0;i<n-1;i++)
    {
        printf("%d ",num[i]);
    }
    printf("%d",num[i]);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq278672818/article/details/83186409