# For Loop# String Manipulation# Basic Output

d649 - 數字三角形

🔗 前往 ZeroJudge 原題

題目描述

題目要求輸出一個高度和底都為 N 的三角形,其中三角形的空白部分用 '_' 替換,三角形的構成部分用 '+' 替換。N 的值由使用者輸入,當 N 為 0 時結束程式。

解題思路

此題主要利用巢狀迴圈來控制輸出。外層迴圈控制行數,從 N 到 1 遞減。內層迴圈控制每行輸出的字元,如果當前列數大於等於行數,則輸出 '+',否則輸出 '_ '。

複雜度分析

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

程式碼

#include <iostream>

using namespace std;

int main (){
	
	int n=0;
	while(cin >> n){
		for(int i=n;i>0;i--){
			for(int j=1;j<=n;j++){
				if(j>=i){
					cout << "+";
				}
				else{
					cout << "_";
				}
			}
			cout << endl;
		}
	}
}

Discussion