# Basic Input/Output# Arithmetic# Mathematics

a002 - 簡易加法

🔗 前往 ZeroJudge 原題

題目描述

本題要求撰寫一個程式,從標準輸入讀取兩個以空白字元分隔的整數 ab。這兩個整數的絕對值都小於 10^6。程式的任務是計算 ab 的和,並將結果輸出到標準輸出。

解題思路

這是一個非常基礎的輸入輸出與算術運算問題。解題思路直接明瞭:

  1. 輸入讀取:使用 C++ 的 cin 物件來讀取兩個整數 ab
  2. 數值運算:將讀取到的 ab 進行加法運算,得到它們的和。
  3. 結果輸出:使用 C++ 的 cout 物件將計算出的和輸出到標準輸出。

由於題目指定 ab 的絕對值皆小於 10^6,其和的絕對值將小於 2 * 10^6。這範圍內的數值可以安全地儲存在 C++ 的 int 類型中。程式碼中使用了 long long int 類型,雖然對於本題的約束條件來說並非必要,但這是一種在競技程式設計中處理數值型別時更為保守和安全的做法,以避免潛在的整數溢位問題,特別是在處理更大的數值範圍或中間計算結果可能超出 int 範圍時。

複雜度分析

  • 時間複雜度: O(1)
    • 程式只執行固定次數的操作:讀取兩個整數、執行一次加法、輸出一個整數。這些操作的執行時間不隨輸入數值的大小而變化(在資料型別的範圍內)。
  • 空間複雜度: O(1)
    • 程式只宣告了兩個變數 ab 來儲存輸入,以及在運算過程中可能使用極少量的暫存器空間。所需的記憶體量是固定的,不隨輸入數值的大小而變化。

程式碼

#include <iostream>

using namespace std;

int main (){
	
	long long int a;
	long long int b;
	
	cin >> a >> b;
	
	cout << a+b;
}

Discussion