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

Информатика егэ №13373. проверьте, правильно ли написана программа на python, и является ли она эффективной по времени и по памяти:
на спут­ни­ке «вос­ход» уста­нов­лен при­бор, пред­на­зна­чен­ный для из­ме­ре­ния сол­неч­ной ак­тив­но­сти. в те­че­ние вре­ме­ни экс­пе­ри­мен­та (это время из­вест­но за­ра­нее) при­бор каж­дую ми­ну­ту пе­ре­даёт в об­сер­ва­то­рию по ка­на­лу связи по­ло­жи­тель­ное целое число, не пре­вы­ша­ю­щее 1000, — ко­ли­че­ство энер­гии сол­неч­но­го из­лу­че­ния, по­лу­чен­ной за по­след­нюю ми­ну­ту, из­ме­рен­ное в услов­ных еди­ни­цах.

после окон­ча­ния экс­пе­ри­мен­та пе­ре­даётся кон­троль­ное зна­че­ние — наи­боль­шее число r, удо­вле­тво­ря­ю­щее сле­ду­ю­щим усло­ви­ям:

1) r — про­из­ве­де­ние двух чисел, пе­ре­дан­ных в раз­ные ми­ну­ты;

2) r де­лит­ся на 26.

на­пи­ши­те эф­фек­тив­ную по вре­ме­ни и ис­поль­зу­е­мой па­мя­ти про­грам­му, ко­то­рая будет про­ве­рять пра­виль­ность кон­троль­но­го зна­че­ния.

про­грам­ма долж­на на­пе­ча­тать отчёт по сле­ду­ю­щей форме.

вы­чис­лен­ное кон­троль­ное зна­че­ние: …

кон­троль прой­ден (или кон­троль не прой­ден)

если удо­вле­тво­ря­ю­щее усло­вию кон­троль­ное зна­че­ние опре­де­лить не­воз­мож­но, то вы­во­дит­ся толь­ко фраза «кон­троль не прой­ден». перед тек­стом про­грам­мы крат­ко опи­ши­те ис­поль­зу­е­мый вами ал­го­ритм ре­ше­ния.

на вход про­грам­ме в пер­вой стро­ке подаётся ко­ли­че­ство чисел n ≤ 100 000. в каж­дой из по­сле­ду­ю­щих n строк за­пи­са­но одно по­ло­жи­тель­ное целое число, не пре­вы­ша­ю­щее 1000. в по­след­ней стро­ке за­пи­са­но кон­троль­ное зна­че­ние.

программа:
n = int(
m26, m13, m2, m = 0, 0, 0, 0
for i in range(n):
num = int(
if num % 26 == 0 and num > m26:
m26 = num
elif num % 13 == 0 and num > m13:
m13 = num
elif num % 2 == 0 and num > m2:
m2 = num
elif num > m:
m = num
ans = max(m13*m2, m13*m26, m26*m, m26*m2,)
r = int(
print('вычисленное контрольное значение: ', ans)
print('контроль пройден' if ans == r else 'контроль не пройден')

Показать ответ
Ответ:
BotanikAziz
BotanikAziz
05.05.2022 07:10
Уровень C

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    int maxdigit = 0;
    while (n > 0) {
        int digit = n % 10;
        if (digit > maxdigit)
            maxdigit = digit;
        n /= 10;
    }
    cout << maxdigit;
    return 0;
}

Уровень D
#include <iostream>

using namespace std;

int main(){
    int n;
    cin >> n;
    int prev = -1;
    while (n > 0) {
        int digit = n % 10;
        if (digit == prev) {
            cout << "YES";
            return 0;
        }
        prev = digit;
        n /= 10;
    }
    cout << "NO";
    return 0;
}
0,0(0 оценок)
Ответ:
кисуня17
кисуня17
05.07.2021 13:22
1) 27^4 – 9^5 + 3^8 – 25 (см. рис)
Приведём все числа к степеням тройки, учитывая, что 
25 = 27-2 = 3^3-2∙3^0
27^4 – 9^5 + 3^8 – 25 = (3^3)^4 - (3^2)^5 + 3^8 - 3^3 + 2∙3^0 = 
(3^12 - 3^10) + (3^8 - 3^3) + 2∙3^0
Найдем значение разности в первой скобке, учитывая что 12-ая степени тройки в троичной системе это 1000000000000(3), а 10-ая степень - это 10000000000(3)
 1000000000000(3)
-
   10000000000(3)

  220000000000(3)
Т.е. в троичной записи 12–10 = 2 «двойки» и 10 «нулей».
Вычислим аналогично вторую скобку:
 100000000(3)
-
      1000(3)

  22222000(3)
Т.е. в троичной записи 8–3 = 5 «двоек» и 3 «нуля».
Таким образом, общее количество двоек = 2+5+1 = 8

2) 3∙16^8 – 4^5 + 3 (см. рис)
Приведём все числа к степеням четверки:
3∙16^8 – 4^5 + 3 = 3∙(4^2)^8 – 4^5 + 3∙4^0 = 3∙4^16 – 4^5 + 3∙4^0
Найдем значение разности, учитывая что 3∙4^16 в системе счисления с основанием 4 это одна «тройка» и 16 «нулей», а 4^5 - это одна «единица» и 5 «нулей»:
 30000000000000000(4)
-
            100000(4)
 
 23333333333300000(4) (одна «двойка», 11 «троек» и 5 «нулей»)
Таким образом, общее количество троек = 11+1 = 12

3) 4^1024 + 8^1025 – 2^1026 – 140
Количество значащих нулей равно количеству всех знаков в двоичной записи числа минус количество единиц.
Приведём все числа к степеням двойки, учитывая, что 140 = 128 + 8 + 4
4^1024 + 8^1025 – 2^1026 – 140 =
(2^2)^1024 + (2^3)^1025 – 2^1026 – (2^7+2^3+2^2) =
2^3075 + 2^2048 – 2^1026 – 2^7 - 2^3 - 2^2
Старшая степень двойки – 3075, двоичная запись этого числа представляет собой  единицу и 3075 нулей, то есть, состоит из 3076 знаков; таким образом, остаётся найти количество единиц.
Представим далее -2^1026 = -2^1027 + 2^1026, получим:
2^3075 + 2^2048 - 2^1027 + 2^1026 – 2^7 - 2^3 - 2^2
Аналогично – 2^7 = - 2^8 + 2^7, получим:
2^3075 + 2^2048 - 2^1027 + 2^1026 - 2^8 + 2^7 - 2^3 - 2^2
И, наконец, - 2^3 = - 2^4 + 2^3
2^3075 + (2^2048 - 2^1027) + (2^1026 - 2^8) + (2^7 - 2^4) + (2^3 - 2^2)
Вспомним свойство: число 2^N–2^K  при K < N записывается как N–K единиц и K нулей.
Общее число единиц = 1+(2048-1027)+(1026-8)+(7-4)+(3-2) = 2044
Таким образом, количество значащих нулей равно 3076-2044 = 1032
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота