М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
hudia4
hudia4
18.09.2020 09:38 •  Информатика

Задача №8. Спиннер – модная игрушка c подшипником в основании, к которому прикреплены лопасти. Афанасий открыл бизнес по производству спиннеров. Он выяснил, что за спиннер,у которого N лопастей, покупатели готовы платить A + B × N рублей, но при этом покупатель не станет покупать спиннер, если его цена будет выше C рублей. Определите максимальное число лопастей спиннера, который согласится приобрести покупатель.Программа получает на вход три числа A, B, C (стоимость основания спиннера,стоимость одной лопасти и максимальная стоимость всего спиннера). Все числа – целые положительные, не превосходящие 20000000000 , при этом A ≤ C.Программа должна вывести одно число – максимальное число лопастей спиннера.

👇
Ответ:
iNNA9078
iNNA9078
18.09.2020

Так и не получил ответ, надо считать A + B * N или (A + B) * N, поэтому использовал второй вариант. Если что, можно легко поменять.

На C++:

#include <iostream>

#include <conio.h>

#include <string>

using namespace std;

int main() {

setlocale(0, "RU");

try {

 string InputError = "Ошибка ввода";

 cout << "Введите стоимость основания спиннера: ";

 int a;

 cin >> a;

 if (cin.fail()) {

  throw(InputError);

 }

 cout << "Введите стоимость одной лопасти: ";

 int b;

 cin >> b;

 if (cin.fail()) {

  throw(InputError);

 }

 cout << "Введите максимальную цену всего спиннера: ";

 int c;

 cin >> c;

 if (cin.fail()) {

   

  throw(InputError);

 }

 int max = 20000000000;

 if (a <= c && a != max && b != max && c != max) {

  int n = 1;

  while (true) {

   if ((a + b) * n <= c) {

    n++;

   }

   else {

    n--;

    break;

   }

  }

  system("cls");

   

  cout << n;

 }

 else {

  string InvalidValues = "Недопустимые значения";

  throw(InvalidValues);

 }

}

catch (string a) {

 cout << "\n" << a << "...";

 _getch();

}

return 0;

}

4,7(11 оценок)
Ответ:
Водород56
Водород56
18.09.2020

Произведем вывод формулы расчета количества лопастей:

S = A + B \cdot N

S_{max} = C

C = A + B \cdot N

N = (C - A) / B

Так как все операнды целые числа, мы имеем целочисленное деление и целое число в результате. Это сравнимо с округлением вниз, поэтому С по стоимости мы не перепрыгнем.

Код:

#include <iostream>

long long calculate_spin_number(

       long long A,

       long long B,

       long long C

) {

   return std::max((C - A) / B, 0ll);

}

int main () {

   long long A, B, C;

   std::cin >> A >> B >> C;

   std::cout << calculate_spin_number(A, B, C) << std::endl;

   return 0;

}

Функция calculate_spin_number() рассчитывает количество лопастей по параметрам A, B, C.

(!!) Внимание! Мы не можем использовать int или unsigned int для хранения чисел такого размера как 20000000000. Нужно использовать long или long long.

===========================================================

Если ответ удовлетворил, не забудь отметить его как "Лучший".

4,8(90 оценок)
Открыть все ответы
Ответ:
jeniainna
jeniainna
18.09.2020
Можно записать две похожих формулировки правила перевода из десятичной системы в двоичную:

Формулировка 1. Для перевода чисел из десятичной системы в двоичную нужно разделить число на 2, где 2 — основание двоичной системы, и записать остаток от деления. Полученное частное снова разделить на 2 и также записать остаток. Повторять действия, пока частное не станет равным 0. Записать все остатки в обратном порядке.

Пример 1: переведем число 36 в двоичную систему счисления:

36 / 2 = 18в остатке 0
18 / 2 = 9в остатке 0
9 / 2 = 4в остатке 1
4 / 2 = 2в остатке 0
2 / 2 = 1в остатке 0
1 / 2 = 0в остатке 1
И запишем полученные остатки снизу вверх ↑

3610 = 1001002

Формулировка 2. Для перевода чисел из десятичной системы в двоичную нужно разделить число на 2, где 2 — основание двоичной системы, и записать остаток от деления. Полученное частное снова разделить на 2 и также записать остаток. Повторять действия, пока частное не станет равным 1. Записать последнее частное (1) и все остатки в обратном порядке.

Пример 2: переведем число 123 в двоичную систему счисления:

123 / 2 = 61в остатке 1
61 / 2 = 30в остатке 1
30 / 2 = 15в остатке 0
15 / 2 = 7в остатке 1
7 / 2 = 3в остатке 1
3 / 2 = 1в остатке 1
Последняя цифра — 1
И запишем эту последнюю 1 и остатки снизу вверх ↑

12310 = 11110112

|

Вторая формулировка напоминает нам, что первая цифра двоичного числа (кроме нуля, конечно) всегда равна единице и последнее действие можно не записывать, так как оно всегда одинаковое, в остальном она аналогична первой. Именно это правило используется в школе, только применяется запись в столбик, однако разделить число на 2 можно и без столбика : ), а запись получается более аккуратной, чем письмена наискось через всю страницу (к тому же её не сложно представить в электронном виде иначе как графикой) .

И в целом, первое правило более универсальное, оно подходит ко всем системам, выучите его и забудьте все прочие, чему бы там не учили в школе.

Последняя цифра двоичного числа будет нулем, если число четное и единицей, если число нечетное.

При делении целого числа нацело на 2 в остатке может быть либо 0 (если делимое четно) либо 1 (если делимое нечетно) .

При целочисленном делении меньшего числа на большее результатом будет всегда 0, а в остатке — делимое, т. е. исходное число, например: 1/2 = 0 а в остатке получим 1. Проверим 0*2+1=1 (получили 1, т. е. делимое) .

Проверить полученные значения можно с стандартного калькулятора в любой операционной системе. Системы счисления в калькуляторе обозначаются сокращенно: дес — десятичная, бин — двоичная, ост — восьмеричная, хекс — шестнадцатеричная.

Электронное устройство, осуществляющее подобный перевод, называется шифратором.
4,8(83 оценок)
Ответ:
Mysicista
Mysicista
18.09.2020
В минуте 60 секунд. 
1) Разделить число на 3600.Получим .целое число означает текущий час.
Если  из задонного числа вычесть  получившееся целое число умноженное на 3600 получим число секунд в текущих  минутах.
2)это число необходимо разделить на 60. Целое число будет означать текущую минуту.
3) вычитаем из оставшегося числа число минут умноженное на 60 получим текущую секунду.

Например
Задано число 66276.

часов.
    18 * 3600 = 64800
    66276 - 64800 = 1476
минуты.
     24 * 60 = 1440
     1476 -1440 = 36

ответ: 18 часов , 24 минуты, 36 секунд.
4,7(65 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ