zoukankan      html  css  js  c++  java
  • 循环左移

    设将n(n>1)个整数存放到一位数组R中,设计一个算法,将R中的序列循环左移P(0<P<n)个位置,即将R中数据由{X0,X1,....,Xp-1}变换为{Xp,Xp+1,...,Xn-1,X0,X1,...,Xp-1}

    要实现R中序列循环左移P个位置,只需先将前P个元素逆置,再将剩下的元素逆置,最后将R中的所有元素逆置即可

    #include <iostream>
    #define N 50
    using namespace std;
    
    void reverse(int R[],int l,int r) {
        int i,j;
        for(i=l,j=r; i<j; i++,j--) {
                int temp = R[i];
                R[i] = R[j];
                R[j] = temp;
        }
    }
    
    void RCR(int R[],int n ,int p){
        if (p<=0||p>=n){
            cout<<"ERROR"<<endl;
        }else {
            reverse(R,0,p-1);
            reverse(R,p,n-1);
            reverse(R,0,n-1);
        }
    }
    
    int main(){
        int L,i;
        int R[N],n;
        cin>>L;
        cin>>n;
        for (i=0;i<n;i++){
            cout<<R[i]<<" ";
        }
        RCR(R,n,L);
        for(i=0;i<n;i++){
            cout<<R[i]<<" ";
        }
        cout<<endl;
        return 0;
    }
  • 相关阅读:
    Celery
    windows笔记目录
    Linux笔记目录
    python笔记目录
    rsa
    c#目录
    webpack3.x配置
    RabbitMQ服务安装(Linux)
    JavaScript验证用户输入
    IP地址检测工具
  • 原文地址:https://www.cnblogs.com/luminous-Xin/p/12256654.html
Copyright © 2011-2022 走看看