有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m 个数C++
时间: 2023-12-20 09:15:05 浏览: 72
Java for combinatorial number algorithm.zip_4MJN_M?n_enterbl4_组合
可以使用循环移位的方法来实现这个问题。具体步骤如下:
1. 定义一个长度为n的整型数组a,并初始化它的元素值。
2. 定义一个整型变量m表示向后移动的位数。
3. 将数组a中前n-m个元素向后移动m个位置,把最后m个元素移到数组a的最前面。
4. 输出移位后的数组a。
以下是C++实现代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n, m;
cout << "请输入整数个数n和向后移动的位数m:";
cin >> n >> m;
// 初始化数组a
int a[n];
for (int i = 0; i < n; i++) {
a[i] = i + 1;
}
// 循环移位
for (int i = 0; i < m; i++) {
int temp = a[n - 1];
for (int j = n - 1; j > 0; j--) {
a[j] = a[j - 1];
}
a[0] = temp;
}
// 输出移位后的数组a
cout << "移位后的数组a:";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
例如,当输入n=8、m=3时,程序的输出结果为:
```
请输入整数个数n和向后移动的位数m:8 3
移位后的数组a:6 7 8 1 2 3 4 5
```
阅读全文