Witam, mam do zrobienia zadanie:
Napisać program, który obliczy współczynniki dwumianu Newtona
n - go stopnia (2 <= n <= 12) i wyswietli je na ekranie
w postaci tzw "trójkąta Pascala".
Uwaga ! Zdefiniować najpierw funkcję, która oblicza wartość k!
(k silnia) i funkcję, która obliczy wartość m po k (m!/(k! * (m - k)!),
a następnie wykorzystać te funkcje do obliczenia współczynników
dwumianu Newtona.
(5 pkt)
Program który napisałem wyświetla trójkąt Pascala z poprawnie obliczonymi współczynnikami, ale z prawej strony jest on w cholere krzywy, im więcej cyfr tym większa rozległość. Poniżej wstawiłem kod programu. Moglibyście doradzić co jest źle, albo co należy zrobić by mniej więcej to równo wyglądało?
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
long silnia(int n)
{
int silnia=1;
for(int i=2;i<=n;i++)
silnia=silnia*i;
return silnia;
}
int kombinacja(int m, int k)
{
int komb;
komb=silnia(m)/(silnia(k)*silnia(m-k));
return komb;
}
int main(int argc, char *argv[])
{
int n;
cout<<"Podaj n: ";
cin>>n;
if(n>=2 && n<=12) // wyswietlanie trojkata pascala
for(int i=0,x=10;i<=n;i++)
{
cout<<setw(x);
cout<<endl;
for(int k=0;k<=n-i+1;k++)
{
cout<<" ";
}
for(int j=0;j<=i;j++)
cout<<" "<<kombinacja(i,j)<<" ";
cout<<endl;
}
else
cout<<"Program strzelil focha"<<endl;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}