Tin học Tây Sơn

Bài 5 HSG 1819

Go down

Bài 5 HSG 1819

Bài gửi by Admin on Tue Nov 06, 2018 4:27 pm

Bài 5: (3,0 điểm) Nhập vào hai số tự nhiên n và m (n, m <109 ). Hãy in ra chu kỳ của phân số n/m. Ví dụ: 1/7 có chu kỳ là (142857); 1/3 có chu kỳ là (3); 2/1 không có chu kỳ.
INPUT
OUTPUT
n=1; m=7(142857)
n=2; m=1Khong co chu ky
avatar
Admin
Admin
Admin

Posts : 640
Reputation : -35
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Bài 5 HSG 1819

Bài gửi by nguyenngocthien on Wed Nov 07, 2018 6:25 pm

Code:
Program bai5;
uses crt;
type mang=array[1..1000] of longint;
var n,m,du,i,j:longint;
ok: boolean;
a,b:mang;

Function tt(a:mang;b:longint):boolean;
begin
tt:=false;
for j:=1 to i-1 do
if b=A[j] then
begin tt:=true; break end
end;
Procedure chuky;
begin
OK:=true;
du:= n mod m;
if du=0 then write('(0)') else
begin
i:=0;
while OK and (du&lt;&gt;0) do

begin

while du &lt; m do du:=du*10;
inc(i);a[i]:=du mod m;b[i]:=du div m;

du:=du mod m;

if tt(a,du) then ok:=false;
end;
if (du=0) or not ok then write('(0)') else
begin
write('(');

for j:=1 to i-1 do if a[j]&lt;&gt; a[i] then write(b[j]);
write(')');
end;
end;
end;
Begin
clrscr;
repeat write('Nhap n: '); readln(n);
write('Nhap m: '); readln(m);
until (m&gt;0) and (n&gt;0);
chuky;
readln
End.
avatar
nguyenngocthien
Teen Chính hiệu
Teen Chính hiệu

Posts : 11
Reputation : -4
Join date : 06/11/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 5 HSG 1819

Bài gửi by Nguyễn Văn Biên on Thu Nov 08, 2018 1:53 pm

Code:
program Bai_5;
uses crt;
var n,m,doi,i,vt:integer;
    tp:string;
    A:array[1..100] of integer;

function ok:boolean;

procedure kt;
var j:integer;
begin
        for i:=1 to length(tp)-1 do
        for j:=i+1 to length(tp) do
        begin
                if A[i]=A[j] then
                        if j=2 then vt:=i
                        else exit
                else vt:=j;
        end
end;

procedure chuyendoi;
begin
        str(frac(n/m),tp);
        delete(tp,3,1); delete(tp,1,1);
        for i:=1 to length(tp) do
        begin
                val(tp[i],doi);
                A[i]:=doi
        end
end;

begin
        if (n mod m = 0) or ((n mod m) = (frac(n/m))) then
        ok:=false
        else begin chuyendoi; kt; ok:=true end
end;

begin
        clrscr;
        write('Nhap n: '); readln(n);
        repeat write('Nhap m: '); readln(m); until m<>0;
        if ok then
        begin
                write('Chu ky cua phan so n/m la: ');
                for i:=1 to vt do write(A[i])
        end
        else write('Chu ky bang 0');
        readln
end.
avatar
Nguyễn Văn Biên
S-mod
S-mod

Posts : 170
Reputation : 22
Join date : 18/06/2018
Age : 14
Location : ?

Xem lý lịch thành viên https://bien2004official.blogspot.com

Về Đầu Trang Go down

Re: Bài 5 HSG 1819

Bài gửi by nguyenngocthien on Thu Nov 08, 2018 1:55 pm

Code:
Program bài 5
uses crt;
var n,m,doi,i,vt:longint;
st:string;
a:array[1..100] of longint;

function kt:boolean;
procedure xuli;
var j:longint;
begin
for i:=1 to length(st)-1 do
      for j:=i+1 to length(st) do
              begin
              if a[i]=a[j] then
                      if j=2 then
                              vt:=i
                      else
                      exit
                      else
                      vt:=j;
              end
      end;
procedure cd;
begin
str(frac(n/m),st);
delete(st,3,1);
delete(st,1,1);
for i:=1 to length(st) do
      begin
      val(st[i],doi);
      a[i]:=doi;
end;
end;
begin
if ((n mod m=0)) or ((n mod m)= (frac(n/m))) then
      kt:=false
      else
      begin
      cd;
      xuli;
      kt:=true;
      end;
      end;

begin
clrscr;
write(' nhap n la ');
readln(n);
repeat
write(' nhap m la ');
readln(m);
until m<>0;
if kt then
begin
write(' chu ky la ');
for i:=1 to vt do
      write(a[i]);
      end
      else
      write(' chu ky bang 0 ');
readln;
end.

avatar
nguyenngocthien
Teen Chính hiệu
Teen Chính hiệu

Posts : 11
Reputation : -4
Join date : 06/11/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 5 HSG 1819

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết