天天看点

1061: 元素平移

题目描述

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。

输入

输入数据的个数n n个整数 移动的位置m

输出

移动后的n个数

样例输入

10
1 2 3 4 5 6 7 8 9 10
2      

样例输出

9 10 1 2 3 4 5 6 7 8      
1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <cmath>
 6 using namespace std;
 7 int a[100];
 8 int b[100];
 9 int main()
10 {
11     int n,m;
12     while(cin>>n){
13         for(int i=0;i<n;i++) cin>>a[i];
14         cin>>m;
15         m%=n;
16         for(int i=0;i<m;i++) b[i]=a[i+n-m];
17         for(int i=m;i<n;i++) b[i]=a[i-m];
18         for(int i=0;i<n;i++){
19             if(i==n-1) cout<<b[i];
20             else cout<<b[i]<<" ";
21         }
22         cout<<endl;
23     }
24     return 0;
25 }