Wensansys
23.06.2022 21:06

Зміна зовнішнього вигляду тексту*​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
hickov2003
23.12.2020 19:42

#include <iostream.h>

 

bool amafree(float x1, float x2, float x3, float x4, float y1, float y2, float y3, float y4, float dotx, float doty)

 

{float x[4],y[4],temp;

for(int i=0;i<4;i++)

for(int j=0;j<3;j++)

{

       if(x[j]<x[j+1])

       {

                    temp=x[j];

                    x[j]=x[j+1];

                    x[j+1]=temp;  

                    temp=y[j];

                    y[j]=y[j+1];

                    y[j+1]=temp;  

                      }

       }

 

if (y[2]<y[3]) {temp=x[2];

                    x[2]=x[3];

                    x[3]=temp;  

                    temp=y[2];

                    y[2]=y[3];

                    y[3]=temp;  }//теперь мы упорядочили точки прямоугольника, чтобы понимать его как у меня на рисунке

    x1=x[0];

    x2=x[1];

    x3=x[2];

    x4=x[3];

    y1=y[0];

    y2=y[1];

    y3=y[2];

    y4=y[3];//так мне удобнее, потому что часть условий уже написал без всяких массивов

     

    float k[10];

    k[0]=(x1-x2)/(y1-y2);

    k[1]=(x1-x3)/(y1-y3);

    k[2]=(x3-x4)/(y3-y4);

    k[3]=(x2-x4)/(y2-y4);//коэффициенты прямых, проходящих по сторонам прямоугольника

 //   if(k[0]!=k[2]||k[1]!=k[3]) {cout<<"Eto dazhe ne parallelogramm\n";return false;}//условие параллельности противолежащих сторон

  //   if(k[0]!=1/k[1]||k[2]!=1/k[3]) {cout<<"Eto dazhe ne pryamougolnik\n";return false;}//условие перпендикулярности смежных сторон

    if(dotx<x[1])&&(dotx<x[2])&&(dotx<x3)&&(dotx<x4)||(doty<y1)&&(doty<y2)&&(doty<x3)&&(doty<x4)||//лежит точно вне

    (dotx>1)&&(dotx>x2)&&(dotx>x3)&&(dotx>x4)||(doty>y1)&&(doty>y2)&&(doty>x3)&&(doty>x4)||//лежит точно вне

    (dotx>x1)&&(dotx<x2)&&(dotx<x3)&&(dotx<x4)&&(doty-k[0]*dotx<0)||//нижний левый треугольник

    (dotx>x1)&&(dotx<x2)&&(dotx<x3)&&(dotx<x4)&&(doty-k[1]*dotx>0)||//верхний левый

    (dotx>x1)&&(dotx<x2)&&(dotx<x3)&&(dotx<x4)&&(doty-k[2]*dotx>0)||//верхний праввый

    (dotx>x1)&&(dotx<x2)&&(dotx<x3)&&(dotx<x4)&&(doty-k[3]*dotx<0)//нижний правый

    return false;

    return true;

    }

0,0(0 оценок)
Ответ:
MaximVolkov14
02.04.2020 10:35
Несмотря на длинное условие, эта задача совсем не сложная. Очевидно, что здесь речь идет о двух системах счисления, причем основание одной из систем в два раза больше, чем основание  другой. По записи выражений (163*11):5+391 и (454*15-26):5+2633 можно предположить, что в первом случае основание меньше, а во втором - больше. Пусть x - основание меньшей системы счисления, тогда второе основание будет 2x. Переведем данные выражения в десятичную систему счисления по известному правилу:
1) ((1*(2x)^2+6*(2x)+3)*(1*2x+1)):5+(3*(2x)^2+9*2x+1)=
((4*x^2+12*x+3)*(2*x+1)):5+(12*x^2+18*x+1)
2) ((4*x^2+5*x+4)*(1*x+5)-(2*x+6)):5+(2*x^3+6*x^2+3*x+3)=
((4*x^2+5*x+4)*(x+5)-(2*x+6)):5+(2*x^3+6*x^2+3*x+3)
После раскрытия скобок и приведения подобных, с учетом того, что числа в выражениях должны быть равны, получим:
8*x^3+88*x^2+108*x+8 = 14*x^3+55*x^2+42*x+29
т.е. 6*x^3-33*x^2-66*x+21=0
Очевидно, что нас интересуют только целочисленные положительные решения.
Ещё раз посмотрим на выражение (454*15-26):5+2633
Из него видно, что основание системы счисления должно быть не меньше 7.
Подставим 7 в уравнение, и! сразу обнаруживаем, что это и есть подходящее нам решение.
Таким образом, в "десятке" одного было 7 человек, а в "десятке" другого - 14.
Общее количество "шпиёнов" у каждого = 7820
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота