Cách tìm BCNN của 3 số

Nếu mình biết các số còn lại có chứa snt nào thì còn lợi hại hơn. Lập hẳn một array snt và kiểm tra, cơ mà cách này thô quá
dàng cho số bự bự, khoảng cách xa nhau thì ổn.

Có lẽ mình sẽ cải tiến một chút là chỉ kiểm tra những số i là bội của greatest thôi.Vì điều kiện cần để là bội của 3 số là nó là bội của từng số.Số lớn nhất là c thì chỉ kiểm tra các số c, 2c, 3c,


Bạn đang xem: Cách tìm bội chung nhỏ nhất của 3 số

ngày xưa toàn làm thế này thôi


Thuật toán của mình tìm bcnn cho n tham số:

#include using namespace std;templateT gcd[T v]{ return v; }template T gcd[T first,Args... args]{ return __gcd[first,gcd[args...]];}template T lcm[T v]{ return v;}template T lcm[T first,Args... args]{ T t=lcm[args...]; return first/__gcd[first,t]*t;}int main[] { cout
Ý tưởng là gì vậy gió?


greater = [a > b && a > c ] ? a : [[b > c] ? b : c];dòng này là sao vậy bạn


tìm số lớn nhất trong 3 số theo cách thủ công


Xem thêm: Bán Xe Tải Cũ Nha Trang, Khánh Hòa Giá Rẻ, Còn Rất Mới, Mua Bán Xe Tải Cũ Mới Giá Rẻ Tại Khánh Hòa

Quang_Tu:

greater = [a > b && a > c ] ? a : [[b > c] ? b : c];dòng này là sao vậy bạn

[condition]? a : b;if condition is true -> return aelse return b;


Vẫn chưa hiểu mấy dấu ? và : là gì a

đấy là cách viết tắt thôi bạn:[biểu thức điều kiện]? [trả về nếu điều kiện đúng]:[trả về nếu điều kiện sai]

VD:

[a > b]? a:b; Thì cũng tương đương với cấu trúc:

if [a > b] return a;else return b;

Mình nghĩ khác 1 chút : ví dụ 3 số a,b,c đi [n số cũng tương tự]Tìm ra được số lớn nhất rồi, thì mình sẽ chỉ kiểm tra bội số của số lớn nhất với các số còn lại thôi như vậy sẽ nhanh hơn,Ví dụ : a,b,c =2,3,4Như cách của bạn thì sẽ kiểm tra lần lượt 4,5,6,7,8,9,10,11,12 thì mới tìm ra được số 12 là bscnn đúng k ?sao k kiểm tra bội số của 4 thôi : 4,8,12 thế sẽ ít hơn độ phức tạp .Đây là code của mình [mình là sysadmin, học python vì nhận ra 1 điều k biết dev thì chả làm được sản phẩm gì của riêng mình cả, mãi mãi dùng đồ người khác.] vì thế nếu code có khó đọc khó hiểu hay sai chỗ nào mong các bạn chỉ giáo :

def bscnn[a, b, c]: #tim so lon nhat if a > b and a > c: max1 = a elif b > c: max1 = b else : max1 = c # bien i de xac dinh buoc nhay boi so cua so lon nhat i = 1 # max 1 de kiem tra so lon nhat co phai la bscnn k # max 2 de luu gia tri so lon nhat trong 3 so max2 = max1 while [True]: if[[max1 % a == 0] and [max1 % b == 0] and [max1 % c == 0]]: bsc = max1 break i += 1 max1 = max2*i return bsc, ia = int[input["Nhap Vao a: "]]b = int[input["Nhap Vao b: "]]c = int[input["Nhap Vao c: "]]print bscnn[a, b, c]

Xem thêm: Tư Vấn Sinh Năm 1985 Mua Xe Màu Gì ? Sinh Năm 1985 Ất Sửu Hợp Với Màu Gì

a = int[raw_input[]]b = int[raw_input[]]c = int[raw_input[]]i = 0while True: i += 1 if i % a == 0 and i % b == 0 and i % c == 0: print "bcnn: %s" % i breakem mới học chút python + pascal nên nghĩ code thế này cho nhanh


Bài này cuối cùng là thế nào? em chẳng hiểu gì!!!, em cũng muốn tìm bội số chung nhỏ nhất của n số!!!

Video liên quan

Chủ Đề