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

Дано двох значне число знати суму і добуток його цифр

Показать ответ
Ответ:
filyanarasulov
filyanarasulov
26.05.2023 16:17
Это код консольного приложения

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

function storona(x1,y1,x2,y2: real): real;
var s: real;
begin
  s:=sqrt(sqr(x1-x2)+sqr(y1-y2));
  storona:=s;
end;

var
  x1,y1,x2,y2,x3,y3: real;
  l1,l2,l3: real;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  write('Введите координаты точки А: ');
  readln(x1,y1);
  write('Введите координаты точки B: ');
  readln(x2,y2);
  write('Введите координаты точки C: ');
  readln(x3,y3);
  l1:=storona(x1,y1,x2,y2);
  l2:=storona(x2,y2,x3,y3);
  l3:=storona(x1,y1,x3,y3);
  if (l1>l2)and(l1>l3) then
  begin
    writeln('Периметр прямоугольника = ',(l2+l3)*2:6:2);
    writeln('Площадь прямоугольника = ',l2*l3:6:2)
  end;
    if (l2>l1)and(l2>l3) then
  begin
    writeln('Периметр прямоугольника = ',(l1+l3)*2:6:2);
    writeln('Площадь прямоугольника = ',l1*l3:6:2)
  end;
    if (l3>l1)and(l3>l2) then
  begin
    writeln('Периметр прямоугольника = ',(l1+l2)*2:6:2);
    writeln('Площадь прямоугольника = ',l1*l2:6:2)
  end;
  readln;
end.
0,0(0 оценок)
Ответ:
mariabilyk2005
mariabilyk2005
19.02.2020 12:32
                                     PascalABC.NET                                       function ToBinary (x:integer):string; beginif (x>0) then ToBinary := ToBinary(x div 2) + (x mod 2).ToString;end; function FromBinary (x:string):integer; beginif (x.Length>0) then FromBinary := FromBinary(x.Substring(1)) + x[1].ToDigit*Round(Power(2,x.Length-1));end; function func (x:integer):integer; beginvar s := ToBinary(x); loop 2 do s += s.AsEnumerable.Sum(c->c.ToDigit) mod 2; func:=FromBinary(s);end; begin Println('f(N):',func(ReadInteger('N:'))); Println('Количество:',(1..160).Count(x->func(x) in 90..160)); end.

Примечание:

Если к числу в двоичной системе счисления приписывать в конец цифры, то число увеличивается и никак не может уменьшится. Поэтому, n<f(n). Следовательно, перебор различных чисел, принадлежащих отрезку [90;160], можно смело ставить до 160 (можно и меньше, но лень расписывать вычисления).

ToBinary - функция перевода числа из десятичной СС в двоичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

FromBinary - функция перевода числа из двоичной СС в десятичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

func - функция, которая выполняет преобразования числа согласно условию (пункты 1, 2, 3, 4).

Код кажется большим только из-за процедур и begin/endов. Без них - всего то 7 строчек :). В скринах можно проверить, действительно ли 19 (40-22+1).

Пример работы:


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