#include <stdio.h>
void tri_rec(int n, int m) {
int i;
if (m == 1) {
// line with spaces and 1 +
for (i
= 0; i
< n
- 1; i
++) putchar(' '); return;
}
tri_rec(n, m - 1); // recurse for previous lines
// print spaces, 1 +, 0 or more minuses, another +
for (i
= 0; i
< n
-m
; i
++) putchar(' '); // spaces for (i
= 0; i
< m
-2; i
++) putchar('-'); // minuses }
void tri(int n) {
tri_rec(n, n-1); // first lines
for (int k
= 0; k
< n
; k
++) putchar('+'); // last line }
int main(void) {
tri(7);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHRyaV9yZWMoaW50IG4sIGludCBtKSB7CiAgICBpbnQgaTsKICAgIGlmIChtID09IDEpIHsKICAgIAkvLyBsaW5lIHdpdGggc3BhY2VzIGFuZCAxICsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbiAtIDE7IGkrKykgcHV0Y2hhcignICcpOwogICAgICAgIHB1dHMoIisiKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB0cmlfcmVjKG4sIG0gLSAxKTsgLy8gcmVjdXJzZSBmb3IgcHJldmlvdXMgbGluZXMKCiAgICAvLyBwcmludCBzcGFjZXMsIDEgKywgMCBvciBtb3JlIG1pbnVzZXMsIGFub3RoZXIgKwogICAgZm9yIChpID0gMDsgaSA8IG4tbTsgaSsrKSBwdXRjaGFyKCcgJyk7IC8vIHNwYWNlcwogICAgcHV0Y2hhcignKycpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICsKICAgIGZvciAoaSA9IDA7IGkgPCBtLTI7IGkrKykgcHV0Y2hhcignLScpOyAvLyBtaW51c2VzCiAgICBwdXRzKCIrIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKwp9Cgp2b2lkIHRyaShpbnQgbikgewogICAgdHJpX3JlYyhuLCBuLTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgbGluZXMKICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbjsgaysrKSBwdXRjaGFyKCcrJyk7IC8vIGxhc3QgbGluZQogICAgcHV0cygiIik7Cn0KCmludCBtYWluKHZvaWQpIHsKCXRyaSg3KTsKCXJldHVybiAwOwp9Cg==