yipo
8/27/2017 - 11:42 AM

Triangle Wave

Triangle Wave

#include <assert.h>
#include <iostream>
#include <string>
using namespace std;

const char EOL = '\n';

inline void print_waveline(size_t height)
{
    assert(height <= 9);
    cout << string(height, '0' + height) << EOL;
}

void print_wave(size_t amplitude)
{
    for (size_t i = 1; i < amplitude; i++) print_waveline(i);
    for (size_t i = amplitude; i > 0; i--) print_waveline(i);
}

void print_waveform(size_t amplitude, size_t frequency)
{
    while (frequency--)
    {
        print_wave(amplitude);
        if (frequency > 0) cout << EOL;
    }
}

int main()
{
    size_t n;
    cin >> n;
    while (n--)
    {
        size_t amplitude;
        size_t frequency;
        cin >> amplitude >> frequency;

        print_waveform(amplitude, frequency);
        if (n > 0) cout << EOL;
    }
    return 0;
}