Trang chủ Tin Học Lớp 8 Hội thi tin học trẻ năm nay, BTC sẽ dự...

Hội thi tin học trẻ năm nay, BTC sẽ dự kiến sẽ tổ chức một phần thi đặc biệt . Trên một trục đường thẳng dài, BTC đã dùng các vạch đánh dấu chia thành nhiều đo

Câu hỏi :

Hội thi tin học trẻ năm nay, BTC sẽ dự kiến sẽ tổ chức một phần thi đặc biệt . Trên một trục đường thẳng dài, BTC đã dùng các vạch đánh dấu chia thành nhiều đoạn có độ dài bằng nhau , vạch xuất phát được đánh chỉ số là 0, các vạch tiếp theo được đánh chỉ số liên tiếp từ 1,2,3,... Các thí sinh được chia thành 2 đội thi , ban đầu cả 2 đội đều ở vạch xuất phát, BTC liên tục đưa ra các câu hỏi, với mỗi câu hỏi, đội nào trả lời đúng sẽ được bước lên phía trước một vạch. Hết giờ thi, đội nào đứng ở vạch có chỉ số cao hơn là đội thắng cuộc. Hiện tại khi kết thúc giờ thi, một đội đang đứng ở vạch có chỉ số là A, một đội đang đứng ở vạch có chỉ số là B. Phần thưởng của phần thi này cũng khá đặc biệt, đội thua cuộc sẽ bước về vạch xuất phát, mỗi bước có một độ dài đúng bằng độ dài 1 đoạn. Giả sử sau mỗi bước, đội đó sẽ ở tại vạch có chỉ số là i và BTC sẽ chỉ trao thưởng khi thỏa mãn điều kiện A chia hết cho i và B chia hết cho i . Biết rằng đội thua cuộc bước về càng nhiều bước thì tiền thưởng càng giảm dần. Bạn hãy giúp đội thua cuộc biết cần bước về bao nhiêu bước rồi dừng lại để có số tiền thưởng lớn nhất? Dữ liệu vào từ tệp văn bản MAXGIFT.INP gồm 1 dòng ghi 2 số A và B cách nhau một dấu cách ( 1

Lời giải 1 :

uses math;
function ucln(x,y:int64):int64;
  var tmp : int64;
  begin
    while y > 0 do
  begin tmp := x mod y;
         x := y;
         y := tmp;
end;
 exit(x);
end;
var a,b:int64;
begin
 readln(a,b);
  writeln(min(a,b)-ucln(a,b));
readln
end.



Thảo luận

-- tìm ucln mà vét thế thì có mà toang :))
-- tle :v
-- ok?
-- https://hoidap247.com/cau-hoi/2558050
-- thử giúp mik bài này với
-- giải thích luôn nha
-- https://hoidap247.com/cau-hoi/2565128

Lời giải 2 :

*Hint? :))

Vì điều kiện là A `\vdots` i và B `\vdots` i nên số i cần tìm phải thuộc UC(A,B);

mà càng bước về nhiều thì tiền thưởng càng giảm dần

nên ta cần tìm 1 số i là lớn nhất có thể :)

`=>` i = UCLN(A,B);

mà đề yêu cầu là số bước đội thua phải bước về nên kết quả cần tìm là:

min(A,B) - UCLN(A,B);

*Code:

uses crt,math;
var i,a,b,m:longword;
begin
    readln(a,b);
    m:=min(a,b);
    while a*b<>0 do
        begin
            a:=a mod b;
            if a <> 0 then
                b:=b mod a;
        end;
    writeln(m-(a+b));
readln;
end.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK