Что было сложным:
Мой С# выдал ошибку Error CS0161 'Program.NOD(long, long)': not all code paths return a value и я так и не помяла какое именно значение и куда он не выдает=( пойду во сне осмысливать =)
Но как бы сам алгоритм у меня и по мне был похож... только более размазневый=)
Комментарии:
static int NOD (int a, int b) { if (a == b) return a;
if (a > b) { a = a - b; return NOD(a, b); }
if (b >a) { b = b - a; return NOD(a, b); } }
как понять ошибку Error CS0161 'Program.NOD(long, long)': not all code paths return a value ?
Внутри каждого if у Вас есть оператор return. А также нужно поставить еще оператор return в самом конце, в случае, когда все условия if неверны. Компьютер не может определить, что с помощью if Вы перебрали все возможности. Я думаю, будет работать так: static int NOD (int a, int b) { if (a == b) return a;
if (a > b) { a = a - b; return NOD(a, b); }
b = b - a; return NOD(a, b); } Если одно из двух первых условий выполнится, то функция завершит работу с помощью одного из двух первых return. Если ни одно из двух первых условий не выполнится, то программа дойдет до конца, и произвойдет возврат с помощью третьего return.
Компьютер всё это делает, и определяет покрытие. Компилятор нормально работает с IF просто главное не забывать что всегда бываю исключения. Например int может быть NaN или INF и при ЛЮБОМ сравнении вернёт false :~)
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Продолжаю тренироваться в рекурсии Трудности: К сожалению, для входных данных 33333333 и 1111 робот шарп падает с таймаутом. К слову, VS2013 тоже выдаёт StackOverflow. Если есть идеи, почему так происходит, прошу указать мне на мою ошибку. нет таковых
Научился: Никогда не находила ранее общи знаменатель подобным образом. Трудности: Не сложно, но по времени затратно, сама разбиралась, как решить. Хороший урок для закрепления понимания работы с рекурсией.