From 70c7b438df46c74280c1c107aa6762439f826559 Mon Sep 17 00:00:00 2001 From: oltnd Date: Sat, 23 Nov 2024 16:48:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20main.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index e3fedad..c6fac7f 100644 --- a/main.cpp +++ b/main.cpp @@ -4,8 +4,31 @@ #include #include #include +#include +#include +#include using namespace std; +// Функция перевода из двоичной строки в десятичное число +int binaryToDecimal(const string& binary) { + int decimal = 0; + for (char c : binary) { + decimal = decimal * 2 + (c - '0'); + } + return decimal; +} + +// Функция перевода из десятичного числа в пятеричную систему +string decimalToBase5(int decimal) { + if (decimal == 0) return "0"; + string base5 = ""; + while (decimal > 0) { + base5 += (decimal % 5) + '0'; + decimal /= 5; + } + reverse(base5.begin(), base5.end()); + return base5; +} int gcdDivision(int a, int b) { while (b != 0) { int remainder = a % b; @@ -146,10 +169,50 @@ void z3_16() { } +void z4_22() { + // Входной массив F[1:n] в двоичной системе + vector binaryArray = { "101", "110", "1111", "10010" }; + // Массив для хранения чисел в пятеричной системе + vector base5Array; + + // Преобразуем числа + for (const string& binary : binaryArray) { + int decimal = binaryToDecimal(binary); // Перевод в десятичное + string base5 = decimalToBase5(decimal); // Перевод в пятеричное + base5Array.push_back(base5); + } + + // Вывод результата + cout << "Числа в пятеричной системе: "; + for (const string& num : base5Array) { + cout << num << " "; + } + cout << endl; +} +void z4_16() { + double epsilon; // Входное значение ε + cout << "Введите значение epsilon: "; + cin >> epsilon; + + double y = 0; // Итоговая сумма + int n = 1; // Начальный индекс + const double limit = epsilon; // Условие для множителя + + while (true) { + double term = pow(1.0 / 3, n) * pow(cos(pow(3, n - 1)), 3); + if (pow(1.0 / 3, n) < limit) { + break; // Условие выхода из цикла + } + y += term; + n++; + } + + cout << "Результат вычислений: y = " << y << endl; +} int main() { setlocale(LC_ALL, ""); /*z1launcher();*/ - z3_16(); + z4_16(); return 0; }