165-misol. Paskal uchburchagining to‘qqizinchi qatoridagi beshta o‘rta elementlari yig‘indisini hisoblang.
Paskal uchburchagining to‘qqizinchi qatorida jami 10 ta element bor. Beshta o‘rta element uchinchi o‘rindan boshlab 7-o‘ringacha joylashadi.
Bu elementlar quyidagicha bo‘ladi:
#include #include using namespace std;
int Almashtirishlar(int n, int k)
{
int S = 1;
for (int i = 1; i <= k; i++)
S *= (n - k + i);
return S;
}
int Fakt(int n)
{
int S=1;
for (int i = 1; i <= n; i++)
S *= i;
return S;
}
int main()
{
long S=0;
int n;
cout << "n="; cin >> n;
for (int i = 2; i <= 6; i++)
S+= Almashtirishlar(n, i) / Fakt(i);
cout << "S=" << S << endl;
return 0;
}
166-misol.Paskal uchburchagining berilgan n ta qatorini ekranga chiqaruvchi dasturni tuzing.
Ma’lumki, Paskal uchburchagi qatorlarini ekranga chiqarish uchun ikkita for siklini tashkil etish kerak. Birinchisi - qatorlar soni bo‘yicha, ikkinchisi, har qatordagi elementlar soni bo‘yicha.
Birinchisi, qatorlar soni uchun j1 o‘zgaruvchili tashqi sikl 0 dan n gacha tashkil etilishi kerak.
Ikkinchisi, ichki siklni 0 dan j1 gacha tashkil etish kerak. Nimaga ? Chunki har bir qatorda uning qator nomeridan bitta ko‘p element bo‘lishi kerak. Nolinchi qatorda 1 ta element, 1-da 2 ta element, 2-da uchta element va h.k, n- qatorda n+1 ta element bo‘ladi?
Buning sababi, elementlar noldan boshlab nomerlanadi.
#include #include using namespace std;
int Almashtirishlar(int n, int k)
{
int S = 1;
for (int i = 1; i <= k; i++)
S *= (n - k + i);
return S;
}
int Fakt(int n)
{
int S=1;
for (int i = 1; i <= n; i++)
S *= i;
return S;
}
int main()
{
long S;
int n;
cout << "n="; cin >> n;
for (int i = 0; i <= n; i++)
{
for (int j = 0; j <= i; j++)
{
S = Almashtirishlar(i, j) / Fakt(j);
cout << S << " ";
}
cout << endl;
}
return 0;
}