题目
1008 数组元素循环右移问题 (20 分)
代码
#include <iostream>
#include <string.h>
#include<stdio.h>
#include<math.h>
using namespace std;
int main(){
int n,m;
cin >> n>>m;
int num[200];
for (int i = 0; i < n; i++){
cin >> num[i];
}
if (m>n)m %= n;
for (int j = (n - m); j < n; j++){
cout << num[j]<<" ";
}
for (int j = 0; j < (n - m); j++){
cout << num[j];
if (j != (n - m - 1))cout << " ";
}
//system("pause");
return 0;
}
计时:00:11:22.62
遇到的问题
当m>n时的情况
一开始写的代码,测试点2,3都错了
经二分搜索后
测试点2:n=6,m=8
测试点3:n=4,m=6
都属于同一种问题:当m>n时的情况
于是添加了一条除余
if (m>n)m %= n;
轻松AC