a001 - 哈囉
題目描述
本題要求程式讀取一個單詞作為輸入,然後輸出固定的前綴 "hello, " 與該單詞串接後的結果,並在末尾換行。例如,若輸入為 "world",則預期的輸出是 "hello, world"。
解題思路
這是一個典型的程式設計入門題目,主要目的是讓學習者熟悉基本的標準輸入 (stdin) 和標準輸出 (stdout) 操作。 解題步驟如下:
- 引入必要的函式庫: 為了使用輸入輸出功能,需要包含
<iostream>函式庫,以及為了處理字串,可能還會用到<string>函式庫(雖然iostream通常會自動包含string的一部分功能,但明確引入是好習慣)。 - 定義字串變數: 宣告一個
std::string型別的變數,用於儲存從輸入讀取的單詞。 - 讀取輸入: 使用
std::cin >> variable_name的方式,從標準輸入讀取一個字串(直到遇到空白字元或換行符)。由於題目說明輸入「總共一行,內含一組文字」,這表示輸入通常是一個沒有空格的單詞,因此cin >> s是適用的。程式碼中的while(cin >> s)是一個常見的模式,用於處理可能有多個輸入的情況,但在本題的描述下,它只會執行一次。 - 輸出結果: 使用
std::cout << "hello, " << variable_name << std::endl;將固定的字串 "hello, "、讀入的字串以及換行符號std::endl依序輸出到標準輸出。std::endl會在輸出換行後,強制刷新輸出緩衝區。
複雜度分析
- 時間複雜度: O(L),其中 L 是輸入字串的長度。主要時間花費在讀取輸入字串和將字串輸出到螢幕上。
- 空間複雜度: O(L),其中 L 是輸入字串的長度。程式需要一個字串變數來儲存輸入的內容。
程式碼
#include <iostream>
using namespace std;
int main() {
string s;
while(cin >> s) cout << "hello, " << s << endl;
return 0;
}