Вопрос по информатике:
Ввести натуральное число N и вывести значение числа N\1, выделив период дроби. Например:1\2=0.5 или 1\7=0,(142857) Решение на языке Pascal.
- 01.08.2016 09:19
- Информатика
- remove_red_eye 16977
- thumb_up 38
Ответы и объяснения 1
// Внимание! Если программа не работает, обновите версию!
function CycleFraction(n:integer):string;
begin
if n=1 then begin Result:='1'; Exit end;
var ost:=new SortedList;
var res:=new List;
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]+(a0?'('+Result?[p:]+')':''.ToString);
exit
end
else begin
k+=1;
ost.Add(a,k);
end
end
end;
begin
var n:=ReadInteger('n=');
Writeln('1/',n,' = ',CycleFraction(n))
end.
Примеры
n= 2
1/2 = 0.5
n= 7
1/7 = 0.(142857)
n= 28
1/28 = 0.03(571428)
n= 118
1/118 = 0.0(0847457627118644067796610169491525423728813559322033898305)
- 02.08.2016 23:13
- thumb_up 27
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.