a065 - 提款卡密碼
題目描述
題目要求根據給定的七個大寫字母,計算相鄰字母之間的「距離」,並將這些距離組成密碼輸出。字母的「距離」定義為從較小的字母到較大的字母需要數的字母數量。
解題思路
題目給定一個包含七個大寫字母的字串。程式需要遍歷字串,計算相鄰字母之間的距離,並將這些距離輸出。計算距離時,需要考慮字母的 ASCII 碼,並計算差值。由於題目中字母是相鄰的,因此可以直接使用 abs() 函數計算差值。
複雜度分析
- 時間複雜度: O(n),其中 n 是字串的長度 (在本例中為 7)。程式需要遍歷字串一次來計算相鄰字母的距離。
- 空間複雜度: O(1)。程式只使用了幾個變數來儲存字母和距離,空間使用量不隨輸入大小變化。
程式碼
#include <iostream>
#include <cmath>
using namespace std;
int main (){
char a[7];
while(cin >> a){
for(unsigned short i=0;i<=5;i++){
cout << abs(a[i+1]-a[i]);
}
cout << endl;
}
return 0;
}