Код#include <iostream>constexpr double bites_to_megabytes(double a) { return a / 8388608;}constexpr double megabytes_to_gigabytes(double a) { return a / 1024;}int main() { long long a; short type; bool is_correct = false; double answer; do { std::cin >> a; std::cout << "[1] Megabytes \n" << "[2] Gigabytes \n" << "Convert to [1] or [2]: "; std::cin >> type; if (type == 1 or type == 2) { is_correct = true; } else { std::cout << "Meh. Try to type again. \n" << std:: endl; } } while (!is_correct); switch (type) { case 1: answer = bites_to_megabytes(a); break; case 2: answer = megabytes_to_gigabytes(bites_to_megabytes(a)); break; } std::cout << "An answer of conversion is " << answer << std::endl; return 0;}
Руслан Руденко1262
11.08.2021
1) Результатом работы должно быть число больше, чем 43, но при этом быть минимальным. Т.е в двоичной с.с это скорее всего 6-значное число, т.к семизначное даст нам результат больше или равный 64. 2) Так как над начальной записью действия производятся дважды, то чтобы получилось 6-значное число в итоге работы программы нужно для начала взять 4-значное. Возьмем (для пробы) 1000. После выполнения алгоритмя число станет 100010. Первый раз к числу прибавится 1, т.е остаток будет 1, второй раз к числу прибавится 0. При переводе этого числа в 10-ю с.с получим 33. МАЛО. 3) Рассмотрим несколько вариантов таким же образом и остановимся, наконец, на том, который будет удовлетворять работе алгоритма. 4) Это 1011. После выполнения первого построения остаток будет 1, после второго добавится 0. В результате получится 101110(2)= 32+8+4+2=46(10)
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
1.какие команды присваивания составлены правильно? a) a: = в б) а=в в) а=b+1 г) а+1: =а