使用 C++ 查詢 N 步後的三角形數量
在本文中,首先,我們需要繪製一個彩色的三角形。我們需要取一個無色的三角形,並將三角形分成四個小的等邊三角形。面積相同的三角形,並一直這樣做直到第 n 步,並找到圖形中存在的等邊三角形的數量。
查詢解決方案的方法
此解決方案有兩種方法,它們是 -
暴力方法
我們可以觀察到,三角形的數量在每一步之後都會增加一些數字(以 3*previous_number + 2 的速度增加)。所以我們可以執行一個迴圈直到 n 並計算三角形的數量。
示例
#include <iostream>
using namespace std;
int main() {
int n = 2; // number of operations we made
int count = 1; // at first we have only one triangle
for(int i = 0; i < n; i++) { // looping till n
count = 3 * count + 2; // as the triangle count is increasing by 3*prev + 2
}
cout <<count << "\n";
}輸出
17
上面程式的時間複雜度為 O(N),其中 N 是執行的運算元。現在我們可以進一步提高其時間複雜度,這在處理更高約束時非常有用。
高效方法
在這種方法中,我們將制定一個公式來為我們計算答案。
示例
#include <bits/stdc++.h>
using namespace std;
int main() {
int n = 2; // number of operations we made
int count;
count = 2 * (pow(3, n)) - 1; // the total number of triangles after nth move
cout << count << "\n";
}輸出
17
以上程式碼的時間複雜度為 O(log(N)),其中 N 是我們執行的移動次數。
以上程式碼的解釋
在給定的程式中,我們只是制定了一個公式來解決我們給定的過程,並將公式所需的數值代入,並列印結果。
結論
本文透過應用一些觀察和數學方法來查詢 N 步後的三角形數量。我們還學習了此問題的 C++ 程式以及解決此問題的完整方法(常規和高效)。
我們可以用其他語言(如 C、Java、Python 和其他語言)編寫相同的程式。希望本文對您有所幫助。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP