数据结构与算法——数组循环右移(C++/Python)
发布时间
阅读量:
阅读量
题目说明
一个整数数组A中包含N(N>0)个元素,在不借助其他数组的情况下,将每个元素进行循环右移M(M≥0)个位置的操作,即将原数组中的数据(A0 A1……AN-1)转换为(AN-M …… AN-1 A0 A1……AN-M-1),即最后M个元素被循环移动到最前面的M个位置。
每个输入对应一个测试用例,第1行输入N(1≤N≤100)和M(M≥0);第2行输入N个整数,各数之间使用空格分隔。
在一行内输出经过循环右移M位后的整数序列,各数字之间用空格分隔,且序列末尾不得出现多余空格。
示例输入
6 2
1 2 3 4 5 6
示例输出
5 6 1 2 3 4
具体实现代码如下:
#include <stdio.h>
int main(){
int a[100];
int N,M,i=0;
scanf("%d %d",&N,&M);
for(i=0;i<N;i++){
scanf("%d",&a[i]);
}
while(M--){ //循环M次即右移M次
int t=a[N-1];
for(i=N-1;i>=1;i--){
a[i]=a[i-1];
}
a[0]=t;
全部评论 (0)
还没有任何评论哟~
