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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

极高效代码(C语言):1008 数组元素循环右移问题 (20分)

發(fā)布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 极高效代码(C语言):1008 数组元素循环右移问题 (20分) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

立志用更少的代碼做更高效的表達


Pat乙級最優(yōu)化代碼+題解+分析匯總——>傳送門


一個數(shù)組A中存有N(>0)個整數(shù),在不允許使用另外數(shù)組的前提下,將每個整數(shù)循環(huán)向右移M(≥0)個位置,即將A中的數(shù)據(jù)由

(最后M個數(shù)循環(huán)移至最前面的M個位置)。如果需要考慮程序移動數(shù)據(jù)的次數(shù)盡量少,要如何設(shè)計移動的方法?

輸入格式:
每個輸入包含一個測試用例,第1行輸入N(1≤N≤100)和M(≥0);第2行輸入N個整數(shù),之間用空格分隔。

輸出格式:
在一行中輸出循環(huán)右移M位以后的整數(shù)序列,之間用空格分隔,序列結(jié)尾不能有多余空格。

輸入樣例:
6 2
1 2 3 4 5 6
輸出樣例:
5 6 1 2 3 4


注意:M可能大于N,因此要進行取余運算。


代碼展示

#include<stdio.h> int main(){int N,M; scanf("%d%d",&N,&M);int t[N]; for(int i=0;i<N;i++) scanf("%d",&t[i]);if(M>=N) M%=N;for(int i=0;i<M;++i){//需要移動M次int temp=t[N-M+i];//保存到臨時變量for(int j=N-M+i;j>i;--j) t[j]=t[j-1];t[i]=temp;//將保存的臨時變量賦值到數(shù)組中}for(int i=0;i<N;++i)printf("%s%d",i>0?" ":"",t[i]);return 0; }

每日一句

零星的變好,最后也會如星河般閃耀。

總結(jié)

以上是生活随笔為你收集整理的极高效代码(C语言):1008 数组元素循环右移问题 (20分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。