日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

翻转矩阵(数组右移问题)

發布時間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 翻转矩阵(数组右移问题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前寫過,近些天又看到了幾個新解法。

?

?方法一(C語言寫):

思路,一次向右移動一位,此過程總共循環M次

#include <stdio.h>
int main(){int n,m,i,number,t;scanf("%d %d",&n,&m);int num[n];//遍歷輸入數組for(i=0;i<n;i++){scanf("%d",&number);num[i]=number;}//持續M次while(m--){t=num[n-1];//先把最后一個數組元素存起來for(i=n-2;i>=0;i--){num[i+1]=num[i];//右移一個單位}num[0]=t;//第一個元素為   之前存的最后一個數組元素}//遍歷輸出for(i=0;i<n;i++){if(i!=n-1){printf("%d ",num[i]);}else{printf("%d",num[i]);}}return 0;
}

方法二(C++)

我們先認識一個函數reverse( )

reverse函數功能是逆序(或反轉),頭文件是#include <algorithm>

reverse函數用于反轉在[first,last)范圍內的順序(包括first指向的元素,不包括last指向的元素),reverse函數無返回值

舉個例子

#include <iostream>
#include <algorithm>
using namespace std;
int main(){int a[6]={0,1,2,3,4,5};reverse(a,a+6);for(int i=0;i<6;i++){cout <<a[i]<<' ';}return 0;
} 輸出:5 4 3 2 1 0

?

#include <iostream>
#include <algorithm>
using namespace std;
int main(){int n,m,i;cin >>n>>m;int num[n];for(i=0;i<n;i++){cin >>num[i];}//遍歷輸入int remove=m%n;//考慮m>=n的情況reverse(num,num+n-remove);//翻轉reverse(num+n-remove,num+n);reverse(num,num+n);for(i=0;i<n;i++){//遍歷輸出cout <<num[i];if(i!=n-1){cout <<' ';}}return 0;
}

總結

以上是生活随笔為你收集整理的翻转矩阵(数组右移问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。