Треугольник Паскаля через динамический массив - C (СИ)
Формулировка задачи:
Как сделать треугольник Паскаля через динамический массив, когда количество строк коэффициентов задается с клавиатуры от 3-10?
Решение задачи: «Треугольник Паскаля через динамический массив»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int fact(int n)
{
if (n == 0)
return 1;
else if (n > 0) {
int i, y = 1;
for (i = 1; i <= n; ++i) {
y = y * i;
}
return y;
}
else
return 0;
}
int main(void)
{
int n, i;
printf("Enter n: ");
scanf("%i", &n);
int mas[n];
for (i = 0; i <= n; ++i) {
if (i == 0 || i == n)
mas[i] = 1;
else
mas[i] = fact(n) / (fact(i) * fact(n - i));
}
for (i = 0; i <= n; ++i)
printf("%i\n", mas[i]);
return 0;
}
Объяснение кода листинга программы
В этом коде реализуется вычисление чисел Фибоначчи с использованием динамического массива.
- Первая часть кода, функция fact(int n), вычисляет факториал числа n. Факториал числа 0 равен 1, факториал положительного числа вычисляется путем перемножения всех целых чисел от 1 до n. Если число отрицательное, то возвращается 0.
- Вторая часть кода, функция main(), считывает из стандартного ввода число n, которое будет использоваться для определения размера динамического массива. Затем используется цикл для заполнения этого массива. Если индекс массива равен 0 или n, то значение равно 1. В противном случае оно вычисляется как результат вызова функции fact() для n, деленный на произведение fact() для i и fact() для n-i.
- Третья часть кода, еще один цикл, используется для вывода значений массива на стандартный вывод. Пример использования: Введите n: 5 1 2 3 4 5