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

Үйде пішіні тіктөртбұрыш N бөлме бар. Әр бөлменің ені мен ұзындығын енгізіп, әр бөлменің ауданын және үйдегі бөлмелер аудандарының қосындысын есептеңдер.

Показать ответ
Ответ:
yoooyooo
yoooyooo
19.06.2022 10:37

#include <iostream>

typedef long long   ll;

using namespace std;

bool ll_is_valid(ll t, ll N, ll x, ll y)

{

return  t / x + (t - x) / y >= N;

}

ll f(ll N, ll x, ll y)

{

   ll R = 1;

   while (!ll_is_valid(R,N,x,y)) R *= 2;

ll L = R / 2;

while(R - L > 1)

{

 ll M   =   (L + R) / 2;

 

 if (!ll_is_valid(M,N,x,y)) {L = M;}

 else {R = M;}

}

return  R;

}

int  main()

{

ll N,x,y;

cin >> N >> x >> y;

if(x > y) swap( x, y );  

cout << f(N, x, y) <<  std::endl;

}

0,0(0 оценок)
Ответ:
darasnezko297
darasnezko297
08.09.2020 11:20
Максимальное число, составленное из утроенного произведения цифр  будет 
9*3*N  -  не  может быть больше 54,  т.е.  
N может быть только 1 или 2.  По условию х>=10  ->  N=2  (N -порядок числа).
Поэтому искать нужно среди чисел от 11 до 54.  Решение - число 15.

var n,m: integer;
begin
  write('n = ');  readln(n);
  if n=2 then
  begin    m:=11;
    repeat
      if (m mod 10)*(m div 10)*3=m then
      begin
        writeln('число:  ',m);
        m:=55;
      end;
      m:=m+1;
    until m>54;
  end
  else  writeln('нет решения');
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота