# String Manipulation# Iteration

c419 - Bert的三角形 (2)

🔗 前往 ZeroJudge 原題

題目描述

題目要求輸出一個 n 層的直角三角形,其中第 i 層有 i 個星號 *,並且向右對齊,使用底線 _ 代替空格。

解題思路

題目要求輸出一個特定格式的三角形。程式碼使用巢狀迴圈來實現。外層迴圈控制層數,內層迴圈分別用於輸出底線和星號。首先,輸出底線的數量為 n-i,然後輸出 i 個星號。每次輸出完一行後,換行。

複雜度分析

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

程式碼

#include <iostream>

using namespace std;

int main (){
	
	int n=0;
	while(cin >> n){
		
		for(int i=1;i<=n;i++){
			
			for(int k=n-i;k>0;k--){
				cout << '_' ;
			}
			for(int j=1;j<=i;j++){
				cout << '*' ;
			}
			
			cout << endl;
		}
		
	}
	
	
}

Discussion