高中生程式解題系統:c013: 00488 - Triangle Wave

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

題目連結 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;
}

沒有留言: