Министерство послало в один из лицеев инспектора для проверки, как в нём ведётся преподавание иностранных языков. Сотрудник министерства в отчёте записал, что в лицее учатся 100 детей. Каждый изучает по крайней мере один из трёх языков: французский, немецкий и испанский. Причём все три языка изучают 5 человек; немецкий и испанский 10;французский и испанский 8; немецкий и французский 20; испанский 30, немецкий 23, французский 50. Инспектор, представивший отчёт, был уволен. Почему?»? Такое длинное условие: пока дочитали до конца – забыли начало. Что делать?
На псевдокоде:
1. Сначала нам нужно ввести с клавиатуры три числа.
2. Когда ввели, присваиваем переменной max значение a. Предположим, что большее значение в a, и дальше по программе будем проверять это. max := a.
3. Проверяем, b > max? Если да, то присваиваем переменной max значение b.
4. Проверяем, max < c? Если да, то присваиваем max значение c.
5. Выводим max.
Реализация Basic:
INPUT a
INPUT b
INPUT c
max = a
IF b > max THEN max = b
IF max < c THEN max = c
PRINT max
END
C#:
Внутри главного метода.
int max;
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
max = a;
if (b > max)
{
max = b;
}
if (max < c){
max = с;
}
Console.WriteLine(max);
Console.ReadLine(); //чтобы программа не закрывалась сразу после выполнения
Можно делить, например, так:
1. 1024 и 33 ореха (штраф 1 рубль)
2. 33 делим на 2 кучки: 32 и 1 (штраф 1 рубль)
3 и все следующие операции: кучки из 1024 и 32 орехов делим на равные кучки (1024: 512 и 512, 512: 256 и 256, 256: 128 и 128, 128: 64 и 64, 64: 32 и 32, 32: 16 и 16 и т.д.).
Получаем, что минимальная сумма штрафа = 2 рубля.