Определить количество членов Ak последовательности - C (СИ) (74659)
Формулировка задачи:
1. Даны натуральные числа n, A 1, A2 , ..., An . Определить количество членов Ak последовательности A1 , ..., An : в) удовлетворяющих условию 2^k < Ak < k!.На языке СИ.Спасибо большое!
Решение задачи: «Определить количество членов Ak последовательности»
textual
Листинг программы
#include <stdio.h>
int main()
{
int n,a[100],k,min=2,max=1,col=0,i;
printf("n= ");
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &a[i]);
printf("k= ");
scanf("%d", &k);
for(i=1; i<k; i++)
{
min*=2;
max*=(i+1);
}
for(i=0; i<n; i++)
if(a[i]>min && a[i]<max)
col++;
printf("Res= %d\n", col);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Сначала пользователю предлагается ввести количество элементов последовательности n и само значение последовательности a[], а затем число k, которое определяет количество итераций для вычисления минимального и максимального значений элементов последовательности. Значения n и k считываются с помощью функции scanf().
- Затем происходит итерационный процесс, в котором вычисляются минимальное и максимальное значения элементов последовательности. На каждой итерации максимальное значение перемножается на (i+1), а минимальное значение остается неизменным.
- После этого происходит проверка каждого элемента последовательности a[], и если он находится в диапазоне между минимальным и максимальным значением, то к переменной col прибавляется единица. Значение переменной col в конце процесса будет содержать количество элементов, удовлетворяющих условию.
- Наконец, функция printf() используется для вывода значения переменной col, которое представляет собой количество элементов, удовлетворяющих условию.