Using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace ConsoleApplication3{ class Program { static void Main(string[] args) { Console.Write("a = "); double a = double.Parse(Console.ReadLine()); Console.Write("b = "); double b = double.Parse(Console.ReadLine()); Console.Write("c = "); double c = double.Parse(Console.ReadLine()); if (a > b) a = b; if (a > c) a = c; Console.WriteLine("Min = {0}", a); Console.ReadKey(); } }}
Ну вот шаблон, и решение по 2й задаче, И скрин результатов работы.
P.S. С кодировками кириллицы могут быть проблемы.
Попытка поиска выигрышной стратегии может быть сделана при помощи метода, получившего название "бэкрекинг" (backtracking - обратное прослеживание).
Рассматриваем финальную позицию для второго студента. У него должно оставаться от 1 до 4 карточек, чтобы он мог их все забрать и не оставить карточек первому студенту. Следовательно, у первого студента должно быть ровно 5 карточек. Забрав от 1 до 4 карточек, он оставит второму студенту как раз требуемое количество карточек.
Чтобы у первого студента осталось 5 карточек, второй студент должен иметь от 6 до 9 карточек, т.е. первый студент для этого должен делать выбор из 10 карточек.
И так далее. Выигрышная стратегия второго студента состоит в том, чтобы предоставлять первому студенту количество карточек, кратное 5.
Но исходное количество карточек равно 20; это число кратно 5, следовательно второй студент всегда выигрывает, применяя описанную стратегию (она же - алгоритм).