Задания
Версия для печати и копирования в MS Word
Тип 14 № 57421
i

Опе­ран­ды ариф­ме­ти­че­ско­го вы­ра­же­ния за­пи­са­ны в си­сте­ме счис­ле­ния с ос­но­ва­ни­ем 15:

97 968x1515 + 7x23315.

В за­пи­си чисел пе­ре­мен­ной x обо­зна­че­на не­из­вест­ная цифра из ал­фа­ви­та 15-⁠рич­ной си­сте­мы счис­ле­ния. Опре­де­ли­те наи­мень­шее зна­че­ние x, при ко­то­ром зна­че­ние дан­но­го ариф­ме­ти­че­ско­го вы­ра­же­ния крат­но 14. Для най­ден­но­го зна­че­ния x вы­чис­ли­те част­ное от де­ле­ния зна­че­ния ариф­ме­ти­че­ско­го вы­ра­же­ния на 14 и ука­жи­те его в от­ве­те в де­ся­тич­ной си­сте­ме счис­ле­ния. Ос­но­ва­ние си­сте­мы счис­ле­ния ука­зы­вать не нужно.

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

result_search = []

for x in '0123456789ABCDE':

t = int('97968' + x + '15', 15) + int('7' + x + '233', 15)

if t % 14 == 0:

result_search.append(t)

if result_search:

print(min(result_search) // 14)

 

Ответ: 116071912.

 

При­ведём ре­ше­ние Ва­ле­рия Се­ро­ва на языке С++.

#include

#include

#include

#include

using namespace std;

// Функ­ция для пре­об­ра­зо­ва­ния стро­ки из 15-рич­ной си­сте­мы в де­ся­тич­ную

long long convertToDecimal(const string& num) {

long long result = 0;

    for (char digit : num) {

        result = result * 15;

        if (digit >= '0' && digit <= '9') {

            result += digit - '0';

        }

        else if (digit >= 'A' && digit <= 'E') {

            result += digit - 'A' + 10;

        }

    }

    return result;

}

int main() {

    string chars = «0123456789ABCDE";

    vector result_search;

    for (char x : chars) {

        // Фор­ми­ру­ем стро­ки чисел

        string first = «97968» + string(1, x) + «15»;

        string second = «7» + string(1, x) + «233»;

        long long t = convertToDecimal(first) + convertToDecimal(second);

        if (t % 14 == 0) {

            result_search.push_back(t);

        }

    }

    if (!result_search.empty()) {

        long long min_value = *min_element(result_search.begin(), result_search.end());

        cout << (min_value / 14) << endl;

        return 0;

    }

    else {

        cerr << "No solution found" << endl;

        return 1;

    }

}


Аналоги к заданию № 55810: 57421 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 06.04.2023. До­сроч­ная волна