
Имеются гири весом 100, 300 и 1000 грамм. Как наименьшим числом гирь этого набора можно составить
вес в М грамм (М кратно 100). Указать вес каждой из используемых для этого гирь. Предполагается, что имеется достаточно большое кол-во гирь любого вид и веса. Выполнить на языке программирования c#.

Ответы на вопрос

Надеюсь помог!



Для решения данной задачи можно воспользоваться жадным алгоритмом.
Алгоритм будет состоять из следующих шагов: 1. Создать переменную "остаток" и присвоить ей значение М (вес, который нужно составить). 2. Создать переменную "гири", которая будет хранить количество использованных гирь. 3. Создать переменную "гиря1000" и присвоить ей значение 0. 4. Создать переменную "гиря300" и присвоить ей значение 0. 5. Создать переменную "гиря100" и присвоить ей значение 0. 6. Если "остаток" больше или равен 1000, то увеличить "гиря1000" на 1, уменьшить "остаток" на 1000 и увеличить "гири" на 1. 7. Если "остаток" больше или равен 300, то увеличить "гиря300" на 1, уменьшить "остаток" на 300 и увеличить "гири" на 1. 8. Если "остаток" больше или равен 100, то увеличить "гиря100" на 1, уменьшить "остаток" на 100 и увеличить "гири" на 1. 9. Повторять шаги 6-8, пока "остаток" не станет равным 0.
После выполнения алгоритма, значения "гиря1000", "гиря300" и "гиря100" будут содержать количество использованных гирь каждого вида, а "гири" будет содержать общее количество использованных гирь.
Пример реализации данного алгоритма на языке программирования C#:
```csharp using System;
class Program { static void Main(string[] args) { int M = 1200; // вес, который нужно составить int остаток = M; // остаток, который нужно составить int гири = 0; // количество использованных гирь int гиря1000 = 0; // количество использованных гирь весом 1000 грамм int гиря300 = 0; // количество использованных гирь весом 300 грамм int гиря100 = 0; // количество использованных гирь весом 100 грамм
while (остаток > 0) { if (остаток >= 1000) { гиря1000++; остаток -= 1000; гири++; } else if (остаток >= 300) { гиря300++; остаток -= 300; гири++; } else if (остаток >= 100) { гиря100++; остаток -= 100; гири++; } }
Console.WriteLine("Количество использованных гирь весом 1000 грамм: " + гиря1000); Console.WriteLine("Количество использованных гирь весом 300 грамм: " + гиря300); Console.WriteLine("Количество использованных гирь весом 100 грамм: " + гиря100); Console.WriteLine("Общее количество использованных гирь: " + гири); } } ```
При запуске программы с весом M = 1200, результат будет следующим: ``` Количество использованных гирь весом 1000 грамм: 1 Количество использованных гирь весом 300 грамм: 0 Количество использованных гирь весом 100 грамм: 2 Общее количество использованных гирь: 3 ```
Таким образом, для составления веса 1200 грамм можно использовать 1 гирю весом 1000 грамм и 2 гири весом 100 грамм. Общее количество использованных гирь будет равно 3.


Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili