Trójkąt Pascala - problem z 1 tablicą

Trójkąt Pascala - problem z 1 tablicą
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Witam, otóż jak w temacie mam problem z napisaniem takiego programiku z algorytmów:
Program wypisuje (wierszami) poziomy trójkąta Pascala do poziomu podanego przez użytkownika. Zadanie należy rozwiązać przy użyciu jednej tablicy.
Wszystko fajnie jest tyle że mi udalo się je zrobić za pomocą tablicy wielowymiarowej a nie potrafię wykonać za pomocą 1 tablicy jednowymiarowej. Proszę o jakąś idee.:(((

Xitami
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
a=t[0];
for i=1..n
    b=t[i]+a
    t[i-1]=a
    a=b
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Dzieki;) A czy tak może to wyglądać:?

Kopiuj
#include <iostream>
using namespace std;

int main()
{
    cout<<"Podaj liczbe wierszy: \n";
    int wiersze;
    cin>>wiersze;
    cout<<"\n";
    const int a=10;
    
    int tab[a][a];
    
    memset( tab, 0, sizeof (tab));
    tab[0][0]=1;

    for ( int i=1; i<a; i++ )
    {
        tab[i][0]=1;
        for ( int j=1; j<a; j++ )
        {
            tab[i][j]=tab[i-1][j]+tab[i-1][j-1];
        }
    }
    for ( int i=0; i<a; i++ )
    {
        for ( int j=0; j<a; j++ )
        {
            if (tab[i][j]!=0)
                cout<<tab[i][j]<<" ";
        }
        cout<<"\n";
    }
    system ("pause");
}
Xitami
  • Rejestracja: dni
  • Ostatnio: dni
0

to jak w końcu z tą tablicą? ile ma mieć wymiarów?

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

no tak 1 tablica i jeden wymiar ja robię na 2 wymiary bo inaczej nie potrafię:(

Xitami
  • Rejestracja: dni
  • Ostatnio: dni
0

wcześniej pokazałem jak uzyskać kolejny wiesz

KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2518
0
Kopiuj
#include <cstdio>
#include <vector>

using namespace std;

int main()
{
  int n;
  printf("Podaj liczbe wierszy: ");
  scanf("%d",&n);
  vector<int> tab(n,0);
  tab[0] = 1;
  for (int i=1; i<=n; i++)
    {
      int prev = 0;
      for (int j=0; j<i; j++)
        {
          int curr = tab[j];
          tab[j] = prev+curr;
          prev = curr;
          printf("%d ",tab[j]);
        }
      printf("\n");
    }
  return 0;
}

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.