Найти египетские фракции в C#

Египетская фракция представляет собой долю, выраженную в виде суммы отдельных единичных дробей. Например, вы можете написать 3/7 как 1/3 + 1/11 + 1/231.

Вы можете написать любую фракцию как египетскую фракцию, и может быть несколько способов сделать это.

Один простой алгоритм для нахождения египетских фракций состоит в вычитании наибольшей частичной единицы, которая меньше исходного значения, а затем повторяется с результатом.

В этом примере используется класс Fraction, описанный в сообщении Сделайте класс фракции в C# . См. Этот пример для большинства деталей этого класса. Для обработки египетских фракций я добавил несколько операторов сравнения. Чтобы упростить сравнение фракций и целых чисел, я также добавил оператора для преобразования из long в Fraction. Следующий код показывает наиболее интересные новые фрагменты кода.

Следующий код показывает, как программа использует пересмотренный класс Fraction для поиска египетских фракций.

Сначала код удаляет из дроби всю целую часть. Например, он преобразует 12/5 в 2 + 2/5.

Источник: http://csharphelper.com/blog/2015/06/find-egyptian-fractions-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *