Никак не могу придумать по которому бы определялось длина периода 1/n (n любое число)
Попробую угадать, что требуется.
f := 0;
while f < 1 do begin
...
f := f + 1/n;
end;
Похоже, требуется узнать период числа 1/n записанного в виде десятичной дроби. Скажем, для n = 7 период равен 6, ибо 0.(142857), для n = 11 - двум, ибо 0.(09), и так далее. Выкладывалось на форуме точно, Artem7, напрягай поиск.
Поюзал ничего подобного не нашёл(((
Значит, неправильно использовал поиск. "+длин* +перио*" выдает всего десяток результатов (пройтись по всему десятку можно было вполне, это не сотня страниц результатов), четвертый сверху - тот, который я имел в виду: http://forum.pascalnet.ru/index.php?s=&showtopic=16168&view=findpost&p=94717
А это реализовать можно как нить попроще? а то мы ещё до массивов не дошли(
http://forum.sources.ru/index.php?showtopic=157247&view=findpost&p=1305441 , никаких массивов (правда, придется чуть-чуть подкорректировать, там находится сам период, а не его длина, но как найти длину, думаю, разберешься...)
Что то я не совсем понял как работает твой код не мог бы ты объяснить?!
Вот сделал так чтоб длину периода находило
Program dlina_perioda;
var
m,n,i,j,k,k1,p,dlina:integer;
drob:real;
begin
write('Введите n ');readln(n);
m:= 1;p:=10;j:=0;drob:=m/n;dlina:=0;
writeln(drob:2:10);
write('Длина периода= ');
k := 1;
while(k <= n) or (j <> m) do begin
if k = n then j := m;
i := p*m div n;
m := p*m mod n;
if k >= n then dlina:=dlina+1;
k:=k+1;
end;
Write(dlina);
readln;
end.
constИ не надо отказываться от констант. Переменные ни разу не лучше.
p = 10;
m = 1;
var
n, i, j, k: integer;
len : integer;
begin
len := 0;
n := 7; { <--- или Readln(n); }
write(m, '/', n, ' длина периода :');
k := 1;
while(k <= n) or (j <> m) do
begin
if k = n then j := m;
i := p*m div n;
m := p*m mod n;
if k >= n then inc(len);
inc(k);
end;
writeln(len);
end.
> Зачем приплетены строки? Зачем хранить дробь? Что, в моем коде есть где-то работа со строками, где-то хранится вещественное значение? Нет этого.
Это для универсальности. Задел на будущее.
Да сперва что то замутил не то, а потом замутил нормально...а вещественную дробь храню чтоб было срау видно что считает правильно, мне же её сдавать надо будет)
соглашусь