題目摘自:乙個陣列- (浙大pta)
a 中存有n(
>0)
個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m(
≥0) 個位置,即將
a 中的資料由(a
0a1⋯
an−1
)變換為(a
n−m⋯
an−1
a0a1
⋯an−
m−1)
(最後m 個數迴圈移至最前面的
m個位置)。如果需要考慮程式移動資料的次數盡量少,要如何設計移動的方法?
輸入格式:
每個輸入包含乙個測試用例,第1行輸入n(
1≤n≤
100)
和m(≥
0);第2行輸入
n 個整數,之間用空格分隔。
輸出格式:
在一行中輸出迴圈右移mmm位以後的整數序列,之間用空格分隔,序列結尾不能有多餘空格。
輸入樣例:
6 2輸出樣例:1 2 3 4 5 6
5 6 1 2 3 4**如下:
#include
int main()
; scanf("%d
%d",&n,&m);
for(i=0;i"%d",&a[i]);
for(j=0;j1];
for(i=n-2;i>=0;i--)
a[0]=t;
}for(i=0;iif(i1)
printf("%d ",a[i]);
else
printf("%d",a[i]);
}//printf("\n");
return
0;}
沒有注意到輸出格式,提交了n次都是格式錯誤。。。浪費了n個小時,好氣啊!!!!
在網上也看到了更好的演算法,還需要繼續學習。
每天一道程式設計題 3
1.編寫乙個shell指令碼,從鍵盤讀入10個數,顯示最大值和最小值。bin sh echo enter your number read input max input min input for i in seq 2 10 do read a if echo a awk v b max eq 1...
每天一道程式設計題 6
1.掃瞄當前目錄下所有.txt結尾的檔案,但每次列出10個檔案,提示是否要刪除這10個檔案。若選擇不是則不刪除,並繼續顯示下10個檔案詢問提示。若選擇是則刪除,並繼續顯示下10個檔案詢問提示。bin sh pwd data0 test count 0 for i in ls data0 test t...
每天一道演算法題 迴圈移動
華為oj上的題,始終有乙個test沒過,不知道為什麼 也考慮移動次數為負值,大於10,0,10這些邊界情況了。只是一直沒有移動陣列,因為只是需要輸出嘛。include using namespace std intmain int step 0 cin step 向前移動,先輸出後m個和,再輸出前m...