Zadanie reekurencyjne

0

Siemka, prosiłbym o pomoc ze zrobieniem tego zadanie, kompletnie nie wiem jak się za nie zabrać:
Narysuj rekurencyjnie literę C utworzoną z zadanych w argumencie funkcji znaków, np. ‘*’ o
zadanej wysokości i szerokości równej połowie wysokości.

1

Dla litery w tym stylu:

***
*
*
*
*
***

wystarczy trochę przerobić funkcję którą wcześniej dostałeś.
Dodaj tylko warunek aby przy level == 0 rysowała pierwszy wiersz (identyczny jak przy level == maxLevel) a przy reszcie linii pojedynczy znak *.

0
Delor napisał(a):

Dla litery w tym stylu:

***
*
*
*
*
***

wystarczy trochę przerobić funkcję którą wcześniej dostałeś.
Dodaj tylko warunek aby przy level == 0 rysowała pierwszy wiersz (identyczny jak przy level == maxLevel) a przy reszcie linii pojedynczy znak *.

wiem że to może głupie pytanie ale, czy to jest dobrze zrobione rekurencyjnie? :

#include <iostream>

using namespace std;

int C(int wysokosc,int szerokosc,int r=1){
    if(r==1){
        for(int i=0; i<szerokosc; i++){
            cout<<"*";
        }
        cout<<endl;
        C(wysokosc, szerokosc, r+1);
    }
    else{
        for(int i=1; i<=wysokosc; i++){
            cout<<"*"<<endl;
        }
    }
    if(r==1){
        for(int i=0; i<szerokosc; i++){
            cout<<"*";
        }
    }

}
int main()
{
    int wysokosc;
    cout<<"Podaj wysokosc: ";
    cin>>wysokosc;
    C(wysokosc,wysokosc/2);
    return 0;
}

0

Najprościej się przekonać uruchamiając program. Wyświetla to co powinien?

1 użytkowników online, w tym zalogowanych: 0, gości: 1