Для школьного праздника группа учащихся решила поставить танец, в котором иллюстрировалась бы работа алгоритма сортировки пузырьком. В этом танце учащиеся становятся в одну линию, после этого некоторые стоящие рядом танцоры могут меняться местами. Одновременные обмены запрещены, то есть пока одна пара танцоров меняется местами, другие остаются на своих местах. В конце танца все девочки должны стоять в ряду слева, а все мальчики — справа. По данному первоначальному расположению мальчиков и девочек в ряду определите, какое минимальное число обменов им необходимо совершить, чтобы встать нужным образом.
Например, пусть первоначальная расстановка танцоров такая (буква «Д» обозначает девочку, буква «М» обозначает мальчика):
МДДМД
Тогда им необходимо выполнить 4 обмена. Запишем расстановку после каждого обмена, выделив жирным шрифтом пару, которая поменялась местами.
ДМДМД
ДМДДМ
ДДМДМ
ДДДММ
В этой задаче вам необходимо определить минимальное число обменов для следующих пяти первоначальных расстановок:
МДММДМД
Во второй расстановке сначала стоит 7 мальчиков, потом 8 девочек.
В третьей расстановке стоит 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек. Всего 60 танцоров.
В четвёртой расстановке 1 мальчик, 1 девочка, 2 мальчика, 2 девочки, 3 мальчика, 3 девочки, 4 мальчика, 4 девочки, 5 мальчиков, 5 девочек, 6 мальчиков, 6 девочек. Всего 42 танцора.
В пятой расстановке мальчики и девочки чередуются, всего 80 танцоров.
ответом на эту задачу является пять целых чисел, записанных в пяти отдельных строках, по одному числу в строке. ответы на расстановки должны быть записаны в том же порядке, в котором они приведены в условии. Если вы не можете найти ответ для какой-то расстановки, напишите в качестве ответа любое число.
Для выполнения вычислений вы можете пользоваться компьютером (калькулятором, электронной таблицей, средой программирования).
Відповідь:
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "Rus");
int k,f;
cout << "Введите число k: ";
cin >> k;
cout << "Введите число f: ";
cin >> f;
cout << "Сумма k + f = " << k + f << endl;
cout << "Разность k - f = " << k - f << " ,f - k = " << f - k << endl;
cout << "Произведение k * f = " << k * f << endl;
cout << "Частное k % f = " << k % f << " , f % k = " << f % k << endl;
return 0;
}
Нет не успеет
Объяснение:
program kopilka;
uses crt;
var x, c, p, y:real; i, m:integer; {x - деньги на счёте, с - цена автомобиля, p - процентная ставка, y - срок вклада в годах; m - срок вклада в месяцах, i - счётчик цикла}
begin
clrscr; {очистка экрана}
write ('Введите начальную сумму вклада, рублей: ') ;
readln(x);
write ('Введите желаемую сумму накопления, рублей: ') ;
readln(c);
write ('Введите срок накопления, лет: ') ;
readln(y);
m:=round(y*12); {здесь мы срок в годах пересчитыаем в месяцы}
write ('Введите ежемесячно начисляемый процент (%) : ') ;
readln(p); p:=p/100; {здесь из числа процентов получаем десятичную дробь}
for i:=1 to m do
x:=x+x*p; {каждый месяц сумма на вкладе увеличивается на p процентов, причем в каждом следующем месяце происходит капитализация вклада, и процент начисляется на возросшую за предыдущий месяц сумму}
if x<c then write('Вы накопили ',x:6:2,' рублей, это меньше запланнированной суммы в ',c:6:2,' рублей')
else write('Ваша цель по накоплению ',c:6:2,' рублей достигнута: вы накопили ',x:6:2,' рублей') ; {здесь мы сравниваем накопленную за m месяцев сумму с желаемой суммой с и, в зависимости от результата, делаем вывод}
readln;
end.