題目連結 http://zerojudge.tw/ShowProblem?problemid=c013。
用2D座標(Cartesian coordinate system)的方式來解題。這樣的解法也可以畫出如下的圖形(可參考:Python 金字塔圖案、Python 巴斯卡三角形):
程式碼:
#include <iostream>
using namespace std;
void prtTriangle(short a, int f)
{
short start = -a + 1;
short end = a - 1;
for( int times = 0; times < f - 1; times++ )
{
for(short n = start; n <= end; n++)
{
int out = a - abs(n);
for(int k = abs(n); k < a; k++)
cout << out;
cout << endl;
}
cout << endl;
}
for(short n = start; n <= end; n++)
{
int out = a - abs(n);
for(int k = abs(n); k < a; k++)
cout << out;
cout << endl;
}
}
int main()
{
int n, a, f;
cin >> n;
while( cin >> a >> f )
{
prtTriangle(a, f);
n--;
if( n <= 0 )
break;
}
return 0;
}
沒有留言:
張貼留言