我們被要求做一個三角形編號。模式在C + +最小。循環。三角形圖案如下:在C++中用最小循環創建數字模式(三角形數字)
____1_____
___2__3____
__4__5__6__
7__8__9__10
我的代碼:
#include <iostream>
using namespace std;
int main() {
int n=0, r=0, i=0;
cout << "No. of rows: ";
cin >> r;
for(n=1; n<=r; n++) {
for(i=1; i<=r-n; i++) {
cout << " ";
}
for(i=(n*(n-1)/2)+1; i<=(n*(n+1)/2); i++) {
if(i<10)
cout << " " << i << " ";
else
cout << i << " ";
}
cout << "\n";
}
return 0;
}
OUTPUT
質詢
1)使用模式生成公式是否明智?例如,爲了把i的值放在最後一個循環中,我使用公式1,2,4,7 ..作爲(n *(n-1)/ 2)+1。這樣更有效率嗎?什麼可能是迭代的方法?和什麼可能是遞歸一個?
2)是否可以減少no。循環?減少變量或減少循環會更好嗎?
謝謝!
「是能夠更好地減少變量或減少循環?」個人資料,請參閱 –
@ChrisBeck我們如何分析? –
@TimKrul,當然使用探查器!例如,您可以使用_gprof_。 – ForceBru