Zadanie reekurencyjne

Zadanie reekurencyjne
B2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
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.

Delor
  • Rejestracja: dni
  • Ostatnio: dni
1

Dla litery w tym stylu:

Kopiuj
***
*
*
*
*
***

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 *.

B2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0
Delor napisał(a):

Dla litery w tym stylu:

Kopiuj
***
*
*
*
*
***

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? :

Kopiuj
#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;
}

Delor
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.