From 24659b2c8c8bd63036166f3e9bcebde955545d25 Mon Sep 17 00:00:00 2001 From: Nikolai Papin Date: Sat, 16 Nov 2024 11:53:25 +0300 Subject: [PATCH] Task 6 complete --- task6.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 task6.cpp diff --git a/task6.cpp b/task6.cpp new file mode 100644 index 0000000..04b25e6 --- /dev/null +++ b/task6.cpp @@ -0,0 +1,50 @@ +// Задание 6 +// Написать программу для нахождения частного и остатка от деления двух +// чисел методом половинного деления + +#include + +// Функция для нахождения частного и остатка от деления +void divide(int dividend, int divisor, int "ient, int &remainder) { + quotient = 0; + remainder = dividend; + + int currentDivisor = divisor; + int currentQuotient = 1; + + while (remainder >= divisor) { + currentDivisor = divisor; + currentQuotient = 1; + + while (remainder >= currentDivisor + currentDivisor) { + currentDivisor += currentDivisor; + currentQuotient += currentQuotient; + } + + remainder -= currentDivisor; + quotient += currentQuotient; + } +} + +int main() { + int dividend, divisor; + + std::cout << "Введите делимое: "; + std::cin >> dividend; + std::cout << "Введите делитель: "; + std::cin >> divisor; + + if (divisor == 0) { + std::cout << "Ошибка: деление на ноль!" << std::endl; + return 1; + } + + int quotient, remainder; + divide(dividend, divisor, quotient, remainder); + + std::cout << "Частное: " << quotient << std::endl; + std::cout << "Остаток: " << remainder << std::endl; + + return 0; +} +