题解 | #怪异的洗牌#

怪异的洗牌

https://www.nowcoder.com/practice/1801ea11cc9d4732a7f0cb2b0b75c8cf

#include<cstdio>
int main(){
    int n,k,nums1[1000],nums2[1000];
    while(scanf("%d %d",&n,&k)!=EOF){
        if(n==0&&k==0)
            break;
        for(int i=0;i<n;++i)//初始化
            nums1[i]=i+1;
        for(int i=0;i<k;++i){
            int x;
            scanf("%d",&x);
            for(int i=0;i<n;++i)//移位
                nums2[i]=nums1[(i+x)%n];
            for(int i=0;i<n;++i)//复制
                nums1[i]=nums2[i];
            int j=n/2-1;
            for(int i=0;i<n/2;++i)//翻转
                nums1[j--]=nums2[i];
        }
        bool flag=true;
        for(int i=0;i<n;++i)
            if(flag){
                flag= false;
                printf("%d",nums1[i]);
            }
            else
                printf(" %d",nums1[i]);
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
你找工作的时候用AI吗?
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务