Давай попробуем рассуждать логически. Если бы сад состоял из двух деревьев, то было бы два варианта садов: 100+99 и 100+101. Если бы досадили третье дерево, то каждый из предыдущих садов удвоил бы число вариантов: первый 100+99+98 и 100+99+100, и так же второй 100+101+100 и 100+101+102. Подмечаем закономерность: каждое добавляемое дерево удваивает количество вариантов. А сад из одного дерева имеет лишь один вариант.
Предполагаю, что сначала указывается количество элементов исходного массива. Далее происходит все то, что вы описали. eps - погрешность для определения целого числа, чем оно меньше - тем точнее числа будут определяться как дробные
Если бы сад состоял из двух деревьев, то было бы два варианта садов: 100+99 и 100+101. Если бы досадили третье дерево, то каждый из предыдущих садов удвоил бы число вариантов: первый 100+99+98 и 100+99+100, и так же второй 100+101+100 и 100+101+102. Подмечаем закономерность: каждое добавляемое дерево удваивает количество вариантов. А сад из одного дерева имеет лишь один вариант.
Поэтому ответ: 1 * 2 * 2 * 2 * ... (десять двоек умножаются) = 2^10 = 1024 варианта садов.
Думаю что так, если не напутал. Но ты лучше проверь за мной.
#include <stdio.h>
#include <math.h>
float eps = 0.000001;
int main()
{
float n; scanf("%f", &n);
float a[n];
for (int i=0;i<n;i++)
scanf("%f", a[i]);
char toCopy = 1;
for (int i=1;i<n;i+=2)
if (abs(round(a[i]) - a[i]) > eps)
{toCopy = 0; break;}
if (toCopy)
int b[n/2];
for (int i=n-(n%2), j=0;j<n/2;i-=2, j++)
b[j] = (int)a[i];
}
Объяснение:
Предполагаю, что сначала указывается количество элементов исходного массива. Далее происходит все то, что вы описали. eps - погрешность для определения целого числа, чем оно меньше - тем точнее числа будут определяться как дробные