В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Annkeklol
Annkeklol
08.11.2022 13:01 •  Информатика

Напишите программу на алгоритмическом языке, нарисуйте блок схему и постройте трассировочную таблицу для следующих .вывод квадратов чисел от 10 до 20.

Показать ответ
Ответ:
150819761
150819761
17.06.2021 12:23
Var
  i,n,s:byte; //Здесь мы описываем переменные i- флаг, n - наше число N, s- переменная "деления"
label l1; // Здесь мы 
begin
     l1:i:=0; //Установка метки на начало программы и установка флага на первоначальное значение - НЕТ
     repeat //проверка N на подлинность
     if i=1 then
     write('Не верный ввод данных!Повторите ввод:') 
     else
     write('Введите номер N:'); // Условие при котором в первый раз выводится предложение где нас просят ввести N, а если же мы её ввели не правильно выводится ошибка и опять нас просят ввести N так продолжается пока мы не введем правильный N
     readln(n);
     i:=1; // Установка флага - ДА
     untill  (n>=1) and (n<100); // Ограничения N
     writeln('Ваше множество:');// Вывод множества;
     for i:=n to 99 do // из условия следует что числа будут в диапазоне от 1 до 99 т.к они натуральные и двухзначные 
     begin
         s:=i mod 11; //Условие при котором Цифры повторяются  т.е. делятся на 11
         if (s<>0) then write(i,'; '); // Проверка условия выше;
     end;
     writeln;
     write('Повторить программу?(1-Да, 0-Нет)-');// Предложение о том сделать ли еще раз программу
     read(i);
     if (i=1) then goto L1; // опять же установка флага и переход к метке L1; если же условие не выполняется, то конец программы
end.
0,0(0 оценок)
Ответ:
slava531
slava531
04.04.2021 06:34

n = int(input())

a = int(input())

b = int(input())

ans = max(0, min(a, b) - max(0, n-b) + 1)

print(ans)

Объяснение:

Пусть имеется a штук первого типа, b штук второго типа, а требуется взять n пирожных.

Пусть p - количество пирожных первого типа, которые взяли, q - количество пирожных второго типа, которые взяли. Тогда должны выполняться условия:

1) p+q = n

2) 0 <= p <= a

3) 0 <= q <= b

Рассмотрим третье неравенство. q заменим на n-p с учетом первого равенства. После этого преобразуем полученное неравенство.

0 <= n-p <= b

-b <= p-n <= 0

n-b <= p <= n

С учетом второго неравенства, получим окончательные границы для p:

max(0, n-b) <= p <= min(a, n).

Поскольку фиксированное значение p однозначно определяет q, то искомое количество выбрать пары (p, q) равно числу выбрать p - это количество целых чисел на отрезке [max(0, n-b); min(a, n)], то есть ans = min(a, n) - max(0, n-b) + 1. Может так получиться, что ответ неположителен - это из-за того, что выбрать пирожные вообще нельзя. Поэтому нужно и этот момент подкорректировать: ans = max(0, min(a, n) - max(0, n-b) + 1).

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