diff options
| author | Paulo Custodio <pauloscustodio@gmail.com> | 2021-01-28 00:33:56 +0000 |
|---|---|---|
| committer | Paulo Custodio <pauloscustodio@gmail.com> | 2021-01-28 00:33:56 +0000 |
| commit | e233d3a019dda275d8d790076d25ec92e47b4ffe (patch) | |
| tree | 48516daf26833baca8695204a4d83c81d58a6dd7 /challenge-003/paulo-custodio/cpp/ch-2.cpp | |
| parent | 022a9f62eda3b5e188b9f6719a63566d9d7efc8b (diff) | |
| download | perlweeklychallenge-club-e233d3a019dda275d8d790076d25ec92e47b4ffe.tar.gz perlweeklychallenge-club-e233d3a019dda275d8d790076d25ec92e47b4ffe.tar.bz2 perlweeklychallenge-club-e233d3a019dda275d8d790076d25ec92e47b4ffe.zip | |
Add Basic, C, C++, Forth, Lua and Python to challenge 003
Diffstat (limited to 'challenge-003/paulo-custodio/cpp/ch-2.cpp')
| -rw-r--r-- | challenge-003/paulo-custodio/cpp/ch-2.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/challenge-003/paulo-custodio/cpp/ch-2.cpp b/challenge-003/paulo-custodio/cpp/ch-2.cpp new file mode 100644 index 0000000000..cf64c51a86 --- /dev/null +++ b/challenge-003/paulo-custodio/cpp/ch-2.cpp @@ -0,0 +1,44 @@ +/* +Challenge 003 + +Challenge #2 +Create a script that generates Pascal Triangle. Accept number of rows from +the command line. The Pascal Triangle should have at least 3 rows. For more +information about Pascal Triangle, check this wikipedia page. + +*/ + +#include <iostream> +#include <string> +#include <vector> + +void draw_pascal(int rows) { + // allocate current and next row + std::vector<int> data[2]; + for (int i = 0; i < 2; i++) + data[i].resize(rows+1); + + int cur = 0; + data[cur][0] = 1; + for (int row = 1; row <= rows; row++) { + // print current row + for (int col = 0; col < rows-row; col++) + std::cout << ' '; + for (int col = 0; col < row; col++) + std::cout << data[cur][col] << ' '; + std::cout << std::endl; + + // compute next row + int nxt = 1-cur; + data[nxt][0] = 1; + data[nxt][row] = 1; + for (int col = 1; col < row; col++) + data[nxt][col] = data[cur][col-1] + data[cur][col]; + cur = nxt; + } +} + +int main(int argc, char* argv[]) { + if (argc == 2) + draw_pascal(atoi(argv[1])); +} |
