beglovatatiyana
?>

1.Найди A, B, C, D, если изначально: A=3, B=6, C=2, D=19. ответ: A=, B=, C=, D= 2.Исходное данное — трёхзначное число x. Выполни для x=145 следующий алгоритм. a:=x div 100 b:=x mod 100 c:=x mod 10 s:=a+b+c

Информатика

Ответы

nastyakrokhina87
Тебя интересует левое верхнее число из матрицы \begin{pmatrix}
1 & 1 \\ 1 & 1
\end{pmatrix}^{12}, что, кстати, является 12 числом фибоначчи

#include <iostream>
// матрица 2 на 2// a  b// c  dtemplate< typename T = int >class matrix2{public:    T a, b, c, d;
    matrix2() : a(0), b(0), c(0), d(0)    {}    matrix2(T a, T b, T c, T d) : a(a), b(b), c(c), d(d)    {}
    matrix2 & operator *= (matrix2 & other)    {        T ta, tb, tc, td;        ta = a * other.a + b * other.c;        tb = a * other.b + b * other.d;        tc = a * other.c + c * other.d;        td = b * other.c + d * other.d;        a = ta, b = tb, c = tc, d = td;    }
    matrix2 operator * (matrix2 & other)    {        T ta, tb, tc, td;        ta = a * other.a + b * other.c;        tb = a * other.b + b * other.d;        tc = a * other.c + c * other.d;        td = b * other.c + d * other.d;        return matrix2(ta, tb, tc, td);    }
    matrix2 pow(int power)    {        matrix2 result(1, 0, 0, 1);        matrix2 cur = *this;        while (power)        {            if (power & 1)            {                power ^= 1;                result *= cur;            }            else            {                power >>= 1;                cur *= cur;            }        }        return result;    }
    void operator = (matrix2 other)    {        a = other.a;        b = other.b;        c = other.c;        d = other.d;    }
    friend std::ostream & operator << (std::ostream & ostr, matrix2 ma)    {        ostr << std::endl;        ostr << ma.a << "  " << ma.b << std::endl;        ostr << ma.c << "  " << ma.d << std::endl;        return ostr;    }
};
int main(void){    matrix2< int > m1(1, 1, 1, 0), tmp;
    const int N = 12;
    std::cout << m1.pow(N).a;
    return 0;}
xcho1020

Про­ана­ли­зи­ру­ем каж­дую по­сле­до­ва­тель­ность.

По­сле­до­ва­тель­ность 122 не может быть по­лу­че­на в ре­зуль­та­те вы­пол­не­ния ал­го­рит­ма, по­сколь­ку числа за­пи­сы­ва­ют­ся в по­ряд­ке не­убывания, а число 22 не может яв­лять­ся раз­но­стью двух чисел, мень­ших шестнадцати.

По­сле­до­ва­тель­ность 212 может быть по­лу­че­на в ре­зуль­та­те вы­пол­не­ния ал­го­рит­ма, пред­ло­жен­но­го учи­те­лем, в этом слу­чае ис­ход­ные цифры были: F, D, 1.

По­сле­до­ва­тель­ность 313 не может быть по­лу­че­на в ре­зуль­та­те вы­пол­не­ния ал­го­рит­ма, пред­ло­жен­но­го учи­те­лем, по­сколь­ку из ана­ли­за преды­ду­щей по­сле­до­ва­тель­но­сти ясно, что не удаст­ся вы­брать такие три числа в шест­на­дца­те­рич­ной системе.

По­сле­до­ва­тель­ность 3A не может быть по­лу­че­на в ре­зуль­та­те вы­пол­не­ния ал­го­рит­ма, по­сколь­ку обе раз­но­сти долж­ны быть за­пи­са­ны как де­ся­тич­ные числа.

Пра­виль­ный ответ ука­зан под но­ме­ром 2.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

1.Найди A, B, C, D, если изначально: A=3, B=6, C=2, D=19. ответ: A=, B=, C=, D= 2.Исходное данное — трёхзначное число x. Выполни для x=145 следующий алгоритм. a:=x div 100 b:=x mod 100 c:=x mod 10 s:=a+b+c
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

olofinskayae
annashersheva
Валерьевна1601
fouettearoma
ribanina
ПолухинаТененева565
Бондарев-Исаханян
prettymarina2015
sov0606332
Vladimirovna1370
alekbur
buhh20104519
Strelkov-Roman1263
vladislavk-market2
a60ikurgannikova