输入两个整数n和m,再输入n个整数构成一个数列,把前m个数循环移位到数列的右边。
时间: 2023-05-31 11:19:26 浏览: 328
### 回答1:
题目描述:
输入两个整数n和m,再输入n个整数构成一个数列,把前m个数循环移位到数列的右边。
解题思路:
1.先输入n和m,再输入n个整数构成一个数列。
2.将前m个数存储到一个临时数组中。
3.将原数组中的第m+1个数到第n个数依次向前移动m个位置。
4.将临时数组中的m个数依次存储到原数组的后m个位置。
5.输出移位后的数列。
参考代码:
#include <stdio.h>
int main()
{
int n, m, i, j, temp;
scanf("%d %d", &n, &m);
int a[n];
for(i=; i<n; i++)
{
scanf("%d", &a[i]);
}
int b[m];
for(i=; i<m; i++)
{
b[i] = a[i];
}
for(i=m; i<n; i++)
{
a[i-m] = a[i];
}
for(i=; i<m; i++)
{
a[n-m+i] = b[i];
}
for(i=; i<n; i++)
{
printf("%d ", a[i]);
}
return ;
}
### 回答2:
题目描述:
给定一个长度为 n 的数列和一个整数 m,要求循环移位将数列中前 m 个元素移到数列的右边。
解题思路:
首先需要对于输入的数字进行合法性判断,代码如下:
if(n<=0 || m<=0 || m>n){
printf("Invalid Input");
return 0;
}
接下来,我们需要新建一个数组,将前 m 个元素先存进去,然后再将其从原数组删除,代码如下:
int a[n],b[m];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
b[i]=a[i];
for(i=0;i<n-m;i++)
a[i]=a[i+m];
for(i=n-m;i<n;i++)
a[i]=b[i-(n-m)];
首先新建一个 a 数组和 b 数组,a 数组用于存储原数列,b 数组用于存储前 m 个元素。然后将输入的 n 个数字存储到 a 数组中,接着将前 m 个元素存储到 b 数组中,然后再将 a 数组中前 m 个元素删除,并将其余元素往前移动,最后将 b 数组中的 m 个元素添加到 a 数组的末尾即可完成循环移位操作。
完整代码如下:
### 回答3:
题目描述:输入两个整数n和m,再输入n个整数构成一个数列,把前m个数循环移位到数列的右边。
题目分析:题目描述中,前m个数要移动到数列的右边,实际上就是将剩下的n-m个数放在数列的左边。考虑三次翻转数组的方法,首先对前m个数进行翻转,然后对后n-m个数进行翻转,最后对整个数列进行翻转。这样就可以实现将前m个数移动到数列的右边。
代码实现:将输入的n个数存储在数组中,对前m个数进行翻转,对后n-m个数进行翻转,最后对整个数列进行翻转,输出结果即可。
示例代码:
```python
n, m = map(int, input().split())
a = list(map(int, input().split()))
# 翻转数组
def reverse(arr, l, r):
while l < r:
arr[l], arr[r] = arr[r], arr[l]
l += 1
r -= 1
# 对前m个数进行翻转
reverse(a, 0, m - 1)
# 对剩余的n-m个数进行翻转
reverse(a, m, n - 1)
# 对整个数列进行翻转
reverse(a, 0, n - 1)
# 输出结果
for i in range(n):
print(a[i], end=' ')
```
时间复杂度:翻转数组的时间复杂度为O(n),因此总时间复杂度为O(n)。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)