М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Vladimirhdjdn
Vladimirhdjdn
14.01.2021 20:19 •  Информатика

С ИНФОРМАТИКОЙ ПАСКАЛЬ 9 КЛАСС Вводится четырёхзначное число. Определить количество различных чисел, которое можно составить из цифр данного числа (цифру нельзя дублировать, если в исходное число она входит 1 раз). Само число также учитывается при подсчёте.

👇
Открыть все ответы
Ответ:
GolubinoeMoloko
GolubinoeMoloko
14.01.2021
Procedure GetWord(s:string; var from:integer; var w:string; var len:integer);
{
Ищет в строке s слово, начиная с позиции from.
Если слово w найдено, from будет указывать на его начало,
а в len будет находиться длина эого слова.
если слово не найдено, w='', len=0
Слова раздеяются минимум одним пробелом, за исключением
первого и последнего слова, у которых пробел может
находиться только с одной стороны.
}
var
  i,n:integer;
  stop:Boolean;
begin
  n:=Length(s); i:=from; stop:=false;
  while (i<=n) and (not stop) do
    if s[i]=' ' then Inc(i) else stop:=true;
  if i>n then begin len:=0; w:='' end
  else begin
    from:=i; stop:=false;
    while (i<=n) and (not stop) do
    if s[i]<>' ' then Inc(i) else stop:=true;
    if i>n then len:=n-from+1 else len:=i-from;
    w:=Copy(s,from,len)
  end
end;

var
  s1,wd,wdmax:string;
  ic,L,Lmax:integer;

begin
  Write('Введите строку: '); Readln(s1);
  ic:=1; Lmax:=0;
  repeat
    GetWord(s1,ic,wd,L);
    if (L>0) and (L>Lmax) then
      begin Lmax:=L; wdmax:=wd end;
    ic:=ic+L+1
  until L=0;
  Writeln('Самое длинное слово "',wdmax,'" длины ',Lmax)
end.
 
Тестовое решение:
Введите строку: Это пример    тестовой    строки  с произвольным числом   пробелов.
Самое длинное слово "произвольным" длины 12
4,8(90 оценок)
Ответ:
polinakolesnik4
polinakolesnik4
14.01.2021

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).

4,6(82 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ