

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Ý tưởng
Gọi số bước dày và bước ngắn lần lượt là `x` và `y` `(x,y in NN)`
Ta có: `ax+by=n`
`<=>` `ax=n-by`
`<=>` `x=(n-by)/a`
Do `x in NN` `=>` `(n-by) \ \vdots \ a` và `n - by >= 0` `<=>` `0 <= y <= n/b`
Cuối cùng, ta có nhận xét: Càng nhiều bước dài (Có nghĩa `y` càng lớn) thì tổng các bước đi sẽ càng nhỏ
Code
var n,a,b,res,y: longint;
begin
res := -1;
readln(n,a,b);
for y := n div b downto 0 do
if (n - b*y) mod a = 0 then
begin
writeln((n - b*y) div a + y);
exit;
end;
writeln(res);
end.
$\\$
`\bb\color{#3a34eb}{\text{@hoanganhnguyen09302}}`
Hãy giúp mọi người biết câu trả lời này thế nào?
![]()
uses crt;
var n,a,b:int64;
i:longint;
function ucln(a,b:int64):int64;
begin
if b=0 then exit(a) ;
exit(ucln(b,a mod b));
end;
begin
clrscr;
read(n,a,b);
if n mod ucln(a,b)<>0 then
begin
write('-1') ;
exit;
end;
for i:=n div b downto 0 do
if ((n-i*b) mod a=0) then
begin
write(i+(n-i*b) div a);
exit;
end;
write('-1');
readln
end.
Hãy giúp mọi người biết câu trả lời này thế nào?
![]()
Bảng tin
0
39
0
Cop thế nào được, cách đây vài phút tôi đã thử giải bài này và cách giải lại giống hệt cậu ta đấy, cậu là thành phần ăn ghen tức ở mấy cái bài này lại nhảy nhót như thằng hề vậy tưởng mình thông minh à, cái trình độ tay ngang như tôi còn giải được thèm gì Cop nói chi cậu ấy. Rút gọnCop thế nào được, cách đây vài phút tôi đã thử giải bài này và cách giải lại giống hệt cậu ta đấy, cậu là thành phần ăn ghen tức ở mấy cái bài này lại nhảy nhót như thằng hề vậy tưởng mình thông minh à, cái trình độ tay ngang như tôi còn giải được thèm... xem thêm
0
39
0
Cậu rất xứng đôi với Huỳnh Bảo đấy.
1428
25173
482
:)? Thì bạn cứ bc
1428
25173
482
Dù tôi ko quá giỏi nhưng mà tôi cũng ko phải quá tệ đến mức như bạn nói nhé
1428
25173
482
Câu nào ko biết giải thì đi hỏi là bình thường tôi ko xấu hổ vref việc tôi ko biết giải