Привет!
Только начал изучать программирование, буду благодарен за критику от опытных товарищей в плане:
1) в каких местах программа "корявая", что Вам режет глаз?
2) что вообще не приемлемо и однозначно нужно делать по-другому?
3) можно ли реализовать что-то проще?
Задал этот вопрос потому, что хочется сразу учиться делать "как правильно".
Спасибо!
p.s. Если посоветуете не заморачиваться, а просто дальше писать код, тоже прислушаюсь.
using System;
class euclid
{
static void Main ()
{
Console.WriteLine( " Привет, я алгоритм Эвклида и готов сделать для вас кой-какую грязную работенку!");
//вводим два числа в строковом формате, превращаем их в числа типа int
Console.WriteLine( " Введите первое целое число: ");
string firstNumberString = Console.ReadLine();
int firstNumber = int.Parse(firstNumberString);
Console.WriteLine( " Введите второе целое число: ");
string secondNumberString = Console.ReadLine();
int secondNumber = int.Parse(secondNumberString);
//сравниваем числа, если первое больше второго, то меняем их местами, таким образом второе получается всегда больше первого либо равно ему)
if (firstNumber > secondNumber)
{
int tempNumber = firstNumber;
firstNumber = secondNumber;
secondNumber = tempNumber;
}
//проверяем самый простой случай - если число 2 делится на число 1 без остатка, т.е. число 1 и является наибольшим общим делителем.
if (secondNumber % firstNumber == 0)
{
Console.WriteLine("Вы ввели числа: {0} и {1}. Наибольший общий делитель: {0}", firstNumber, secondNumber);
Console.ReadLine();
}
else
//вычисляем остаток от деления, и пока остаток не равен нолю выполням цикл Евклида. Как только остаток равняется нолю, выводим предыдущее его сохраненное значение.
{
int remainder = secondNumber % firstNumber;
int formerSecondNumber = firstNumber;
int storedRemainder = 0;
while (remainder != 0)
{
storedRemainder = remainder;
remainder = formerSecondNumber % remainder;
formerSecondNumber = storedRemainder;
}
Console.WriteLine("Вы ввели числа: {0} и {1}. Наибольший общий делитель: {2}", firstNumber, secondNumber, storedRemainder);
Console.ReadLine();
}
}
}