Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatics_zadachi.doc
Скачиваний:
3
Добавлен:
09.07.2019
Размер:
77.82 Кб
Скачать
    1. Максимальный элемент меньше X

Void main() {

int n = 12; // количество элементов

int a[12] = {0, 3, 7, 12, 18 , 42, 46, 75, 96, 99, 100500, 100501};

int x = 19;

int i = 0, k = 0;

int b = 0, c = n - 1;

while ( b != c && b != c - 1 ) {

i = ( b + c ) >> 1;

k = a[i];

if ( k > x ) {

c = i;

} else {

b = i;

}

}

if (b == c - 1) {

printf("Iskomoe chislo = %i", a[b]);

}

}

    1. Количество элементов больше X

Void main() {

int n = 12; // количество элементов

int a[12] = {0, 3, 7, 12, 18 , 42, 46, 75, 96, 99, 100500, 100501};

int x = 19;

int i = 0, k = 0;

int b = 0, c = n - 1;

while ( b != c && b != c - 1 ) {

i = ( b + c ) >> 1;

k = a[i];

if ( k > x ) {

c = i;

} else {

b = i;

}

}

if (b == c - 1) {

printf("Iskomoe chislo = %i", n - c);

}

}

    1. Количество элементов меньше X

Void main() {

int n = 12; // количество элементов

int a[12] = {0, 3, 7, 12, 18 , 42, 46, 75, 96, 99, 100500, 100501};

int x = 19;

int i = 0, k = 0;

int b = 0, c = n - 1;

while ( b != c && b != c - 1 ) {

i = ( b + c ) >> 1;

k = a[i];

if ( k > x ) {

c = i;

} else {

b = i;

}

}

if (b == c - 1) {

printf("Iskomoe chislo = %i", b + 1);

}

}

    1. Число элементов в диапазоне от X до y

Void main() {

int n = 12; // количество элементов

int a[12] = {0, 3, 7, 12, 18 , 42, 46, 75, 96, 99, 100500, 100501};

int x = 19;

int y = 100;

int i = 0, k = 0;

int b = 0, c = n - 1, b1, c1;

while ( b != c && b != c - 1 ) {

i = ( b + c ) >> 1;

k = a[i];

if ( k > x ) {

c = i;

} else {

b = i;

}

}

b1 = b;

c1 = c;

b = 0;

c = n - 1;

while ( b != c && b != c - 1 ) {

i = ( b + c ) >> 1;

k = a[i];

if ( k > y ) {

c = i;

} else {

b = i;

}

}

if (b == c - 1) {

printf("Iskomoe chislo = %i", c - c1);

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]