C语言解决PTA1008 数组元素循环右移问题

文章目录


本博文源于胡凡老师的《算法笔记》,解决这道题目的关键就是先取模,后打印,打印的话直接n-m - n-1打印,然后1再打印0,n-m打印,思路特别清晰,代码也很简洁,清晰易懂
C语言解决PTA1008 数组元素循环右移问题

输入样例:

6 2
1 2 3 4 5 6

输出样例:

5 6 1 2 3 4

核心思想

先取模避免m大于n,然后就开始n-m - n-1的打印,然后1-n-m打印即可。

完整源码

#include<stdio.h>
int main()
{
    int a[110];
    int n,m,cnt = 0;
    scanf("%d%d",&n,&m);
    m = m%n;
    for(int i =0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(int i = n-m;i<n;i++){
        //输出n-m 号 到 n-1号数字
        printf("%d",a[i]);
        cnt ++;
        if(cnt<n) printf(" ");
    }
    for(int i = 0;i<n-m;i++){
        printf("%d",a[i]);
        cnt++;
        if(cnt<n)printf(" ");
    }
    return 0;
}

测试效果

C语言解决PTA1008 数组元素循环右移问题

上一篇:【Leetcode】NO.5194 得到目标值的最少行动次数(Python) [周赛]


下一篇:重邮2020复试题