d562 - 山寨版磁力蜈蚣
題目描述
題目描述了山寨版磁力蜈蚣的分解過程。蜈蚣由數字磁鐵組成,每次分解前會移除第一個磁鐵,然後將剩餘的磁鐵順序倒轉。程式需要模擬這個過程,並輸出每次分解後的磁鐵序列,直到只剩一個磁鐵為止。
解題思路
這題的解題思路是直接模擬題目的描述。首先讀取磁鐵的數量 n 和磁鐵序列 b。然後,在 n > 1 的情況下,迴圈執行以下操作:
- 移除第一個磁鐵。
- 將剩餘的磁鐵序列倒轉。
- 輸出倒轉後的磁鐵序列。
- 減少磁鐵數量
n。 迴圈結束的條件是n <= 1,即只剩一個磁鐵時。
複雜度分析
- 時間複雜度: O(n^2)
- 空間複雜度: O(n)
程式碼
#include <iostream>
#include <string>
using namespace std;
int main(){
int a=0,tem=0;
while(cin >> a){
int b[a];
for(int i=0;i<a;i++){
cin >> b[i];
cout << b[i] << " ";
}
while(a>0){
for(int i=0;i<a/2;i++){
tem=b[i];
b[i]=b[a-i-1];
b[a-i-1]=tem;
}
cout << endl;
for(int i=0;i<a-1;i++){
cout << b[i] << " ";
}
a--;
}
}
}