9.4. Napisati rekurzivnu funkciju void koja za dato n iscrtava trougao dimenzije n x n. Napr za n=7:
Opis programa: Na slici je prikazan odnos redova i kolona.
|
Slika 1. Glavna dijagonala i=j |
Listing programa:
/* 09413125 nacrtaj trougao */
#include <cstdlib>
#include <iostream>
using namespace std;
void ispisi_red(int j) { // ispis reda
if (j == 0) return; // kraj reda
ispisi_red(j - 1); // rekurzija, ispsi slijedeci znak u redu
cout << j; // ispis znak
return;
}
void novi_red(int n, int i) { // brojac broja znakova u redu
if (n == 0) return; // kraj?
ispisi_red(i); // ispis reda
cout << endl; // kursor u novi red
novi_red(n - 1, i + 1); // rekurzivni poziv slijedeci red
}
int main() {
int broj = 7; // broj redova 7
novi_red(broj, 1); // poziv ispisa redova
return 0;
}
Ispis na ekranu:
Index
|