• Ввести натуральное число N и вывести значение числа N\1, выделив период дроби. Например:1\2=0.5 или 1\7=0,(142857) Решение на языке Pascal.

Ответы 1

  • // PascalABC.NET 3.3, сборка 1627 от 27.01.2018// Внимание! Если программа не работает, обновите версию!function CycleFraction(n:integer):string;begin  if n=1 then begin Result:='1'; Exit end;  var ost:=new SortedList<integer,integer>;  var res:=new List<integer>;  ost.Add(1,1);  var a:=1;  var k:=1;  while True do begin    a*=10;    var r:=a div n;    res.Add(r);    a:=a mod n;    if ost.ContainsKey(a) then begin      var p:=ost.Get(a);      Result:=res.JoinIntoString('');      Result:='0.'+Result?[:p]+(a<>0?'('+Result?[p:]+')':''.ToString);      exit      end    else begin      k+=1;      ost.Add(a,k);      end    endend;begin  var n:=ReadInteger('n=');  Writeln('1/',n,' = ',CycleFraction(n))end.Примерыn= 21/2 = 0.5n= 71/7 = 0.(142857)  n= 281/28 = 0.03(571428)n= 1181/118 = 0.0(0847457627118644067796610169491525423728813559322033898305)
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years