# String Manipulation# Conditional Statements

k257 - 新生制服套量

🔗 前往 ZeroJudge 原題

題目描述

題目要求將輸入的登錄號碼中的序號轉換為三位數,不足三位數的前面補零。登錄號碼由一個性別代號(M 或 F)加上一到三位數的報到序號組成。

解題思路

這題主要考驗對字串操作和條件判斷的應用。程式首先讀取輸入字串,然後根據字串的長度進行不同的處理:

  • 如果字串長度為 2,表示序號只有一位數,在序號前面補兩個零。
  • 如果字串長度為 3,表示序號有兩位數,在序號前面補一個零。
  • 如果字串長度大於 3,表示序號已經是三位數或更多,直接輸出原字串。

複雜度分析

  • 時間複雜度: O(1)
  • 空間複雜度: O(1)

程式碼

#include <iostream>
using namespace std;
string a;
int main(){
	cin >> a;
	if(a.size()==2){
		cout << a[0] << "00" << a[1];
	}
	else if(a.size()==3){
		cout << a[0] << "0" << a[1] << a[2];
	}
	else{
		cout << a;
	}
}

Discussion