hgfdui
25.06.2020 23:49

5. кинотеатр
в первом ряду кинотеатра n + 2 мест, крайние места заняты персоналом кинотеатра,
но у мест посередине свободно. к кольников входят в зрительный зал по очереди, и,
конечно же, каждый школьник достаёт спиннер и начинает его крутить до начала сеанса.
поэтому каждый школьник выбирает себе место как можно дальше от уже занятых мест.
а именно, школьник находит самый большой свободный участок в ряду (любой, если таких
несколько) и садится посередине него. если число свободных мест на этом участке было
нечётно, то школьник садится точно посередине участка, тогда слева исправа от него
остаётся поровну свободных мест. если же это число чётно, то школьник выбирает одно из
двух свободных мест посередине, тогда с одной стороны от школьника будет на одно
свободное место больше, чем с другой стороны.
по данным числам n и к определите, сколько мест осталось свободными с двух
сторон от школьника, который занял место последним (k-м по счёту).
программа получает на вход два целых числа n и к, 1вывести два целых числа в порядке неубывания – количество свободных мест с двух сторон
от школьника, который последним занял место в ряду.​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
yaritos
29.03.2020 00:51
1. Для цикла For есть решение выложенное выше  от Srzontmp.

2. Почти ничего не меня получим код для цикла while:
var
  i, n, k: integer;
begin
  i := 2;
  readln(n);
  while i <= n div 2 do begin
    if (n mod i) = 0 then k := i;
    i:=i+1;
    end;
  writeln('наибольший делитель ', n, ' = ', k);
end.

3. Аналогично для цикла Repeat:
var
  i, n, k: integer;
begin
  i := 2;
  readln(n);
  repeat
    if (n mod i) = 0 then k := i;
    i:=i+1;
  until i> n div 2;
  writeln('наибольший делитель ', n, ' = ', k);
end.
0,0(0 оценок)
Ответ:
Санёк1616
07.05.2023 12:48

Насколько я понял n должна быть меньше или равна 100, верно? Тогда вот, он, может и не самый эффективный, но довольно понятный и работающий.

#include <iostream>

using namespace std;

int main(){

int n,maks,schetchik; /* n - это количество элементов массива, maks - думаю, знаешь, schetchik - высчитывает количество повторений максимального числа в массиве */

cin >>n;

if(n<=100){

int a[n]; /*обьявляем количество эелементов массива и проверяем, чтобы его количество было меньше или равно 100*/

for(int i=0;i<n;i++){ /*цикл for обьявляет переменную i, далее делая её текущим индексом элемента массива */

cin >> a[i];

if (a[i]>-30000 && a[i]<30000){ /* проверка условия, данного задачей
*/

if(i==0){maks=a[i]; schetchik =1;}; /* особая разработка автора, максимальным элементом массива становиться самый первый элемент (ну по крайней мере, я ни у кого не видел) */

if (i!=0 && maks == a[i]) {schetchik +=1;}; /* и ещё одна моя собственная разработка, проверка, не является ли элемент массива первым, а так же если он равен максимальному, то счетчик увел. на 1 */

if (maks<a[i]) {maks = a[i]; schetchik = 1; }; /* а тут мы проверяем на то, не являеться ли текущий массив большим чем максимальный, если да, то счет сбрасывается и макс. равняется текущему числу */

}

}

cout << schetchik; } //ну и вывод числа, всё довольно просто

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота