# Iteration# Basic Math

a621 - 1. Powers of Two

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取一個非負整數 n,並輸出從 2 的 0 次方到 2 的 n 次方的所有值,格式為 "2^i = value"。

解題思路

此題的解題思路非常直接。使用一個迴圈,從 i = 0 開始迭代到 i = n。在每次迭代中,計算 2 的 i 次方,並按照指定的格式輸出結果。由於題目限制輸入 n 的範圍在 0 到 20 之間,因此使用 long long int 類型來儲存 2 的 i 次方的值,以避免溢位。

複雜度分析

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

程式碼

#include <iostream>

using namespace std;

int main(){
	
	
	long long int a=0,b=0,c=1;
	while(cin >> a){
		while(a>=b){
			cout << "2^" << b << " = " <<  c << endl;
			c*=2;
			b++;
		}
	}
}

Discussion