欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PTA:自测-3 数组元素循环右移问题 (20分)

程序员文章站 2022-06-07 14:33:17
...

PTA:自测-3 数组元素循环右移问题 (20分)
利用队列实现,但是有队列是先进先出和数组右移机制有些不同,所以我们他进行左移,因为他移动的位数是循环的,所以我们可以做成左移n-m位,然后每移动n位等价于没有移动,所以对n进行求余。

#include"stdio.h"
#include"math.h"
#include <cstdlib>
#include <iostream>
#include <queue>

using namespace std;



int main(){	
	
	queue<int> q;
	
	int n,step;
	int temp;
	scanf("%d%d",&n,&step);
	
	for(int i =0;i<n;i++){
		temp =0;
		scanf("%d",&temp);
		q.push(temp);
	}
	
	for (int i=0;i<abs(n-step%n)%n;i++){
		temp = q.front();
		q.pop();
		q.push(temp);
	}
	printf("%d",q.front());
	q.pop();
	for(int i=1;i<n;i++){
		printf(" %d",q.front());
		q.pop();
	}
	
	
}

相关标签: oj c语言 c++