1008 数组元素循环右移问题

1.1题目

1.2题解

1.3代码

 

 

 

题目:

一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(0)个位置,即将A中的数据由(A0A1AN1)变换为(ANMAN1A0A1ANM1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?

输入格式:

每个输入包含一个测试用例,第1行输入N(1N100)和M(0);第2行输入N个整数,之间用空格分隔。

输出格式:

在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

输入样例:

6 2
1 2 3 4 5 6
 

输出样例:

5 6 1 2 3 4

 
 
 
题解:
1、先弄清楚右移1位,通过循环m此自然实现了右移m位
 
 
 
 
 
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
int main(){
    int n,m;
    int a[105];
    bool flag = false;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    while(m--){
        int temp = a[n-1];
        for(int i=n-1; i>0; i--){
            a[i] = a[i-1];
        }
        a[0] = temp;
    }
    for(int i=0; i<n; i++){
        flag == false ? flag = true : printf(" ");
        printf("%d",a[i]);
    }
    return 0;
}

 

 
 
 
posted @   Yohoc  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示