Advertisement

数据结构与算法——数组循环右移(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)

还没有任何评论哟~