В ПАСКАЛЕДаны два естественных числа a и b. Вывести a/b в

В ПАСКАЛЕ
Даны два натуральных числа a и b. Вывести a/b в виде повторяющейся дроби.
К примеру: 1/3=0,(3)

Задать свой вопрос
Павел
Каждый год одни и те же задачи...
Sergej Korovjanskij
В каком смысле?
Гелевский Алексей
Ответ-то ты знаешь?)Просто хз как здесь код написать
Амелия
В прямом. Поиск тут есть
1 ответ

// PascalABC.NET 3.4.2, сборка 1797 от 22.09.2018

// Внимание! Если программа не работает, обновите версию!

function CycleFraction(a, b: integer): string;

begin

 Result := (a div b).ToString;

 a := a mod b;

 if a = 0 then exit;

 Result += ','; // разделитель

 var k := Result.Length + 1;

 var ost := new SortedListlt;integer, integergt;;

 ost.Add(a, k);

 while True do

 begin

   a *= 10;

   Result += (a div b).ToString;

   a := a mod b;

   if ost.ContainsKey(a) then

   begin

     var p := ost.Get(a);

     Result := Result?[:p] + (a lt;gt; 0 ? '(' + Result?[p:] + ')' : ''.ToString);

     exit

   end

   else

   begin

     k += 1;

     ost.Add(a, k);

   end

 end

end;


begin

 var (a, b) := ReadInteger2('Введите числитель и знаменатель:');

 CycleFraction(a, b).Println;

end.

, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт