PAT.Basic level.T.1008.数组元素右移

来源:互联网 发布:地暖品牌 知乎 编辑:程序博客网 时间:2024/06/03 20:58

题目有个小技巧,首先m比n大了,那我可以直接把比n多出来的部分删掉。啊这个意思,就是假设n为6 m为6,那相当于没有移动对不对。 n为8, m为10,那相当于一个n为8m为8+n为8,m为2,因为前者相当于没移动,所以直接移动2就好了。

#include<stdio.h> main(){    int n,m;    int test[105],final[105];    int i;    scanf("%d%d",&n,&m);    m = m%n;    for(i=1;i<=n;i++){        scanf("%d",&test[i]);    }    for(i=1;i<=n;i++){        if((i+m)>n){            final[i+m-n]=test[i];        }else{            final[i+m]=test[i];        }    }    for(i=1;i<n;i++){        printf("%d ",final[i]);    }    printf("%d",final[i]);    return 0;}
0 0
原创粉丝点击