Bài số 8 đã kết thúc êm đẹp với một ý tưởng khá đơn giản nhưng lại hiệu quả của bạn Cao Văn Nhàn :look_down:. Chúng ta sẽ tiếp tục sang bài số 9, bài toán kinh điển mà hầu như rất hay gặp lúc đi test mấy công ty lập trình :badsmell:.
Bài toán:
GCD(Greatest common divisor - UCLN) hoặc LCM (Least common multiple - BCNN): Cho 2 số <= 2 tỉ, tìm GCD và LCM của nó.
Time limit:1s
Memory: 5MB
Ví dụ:
Input:
15 85
Output:
5---->//UCLN
255----->//BCNN
Have fun :happy:
GDC thì dễ xơi chứ LCM thì căng đấy
:nosebleed:
lần này xài kiểu long để anh Điệp khỏi bắt nữa. hì hì.
bội chung nhỏ nhất của hai số = tích của 2 số đó chia cho USCLN của 2 số đó luôn.
#include <iostream>
using namespace std;
long a,b;
long USCLN(long a, long b)
{
return (b==0)?a:USCLN(b, a%b);
}
int main()
{
cin>>a>>b;
cout<<USCLN(a,b)<<" "<<((long long )a*b)/USCLN(a,b);
return 0;
}
Tính GCD thì em dùng cách này:
#include <iostream>
using namespace std;
long ucln(long a, long b)
{
while(a!=b)
{
if(a>b)
a-=b;
else
b-=a;
}
return a;
}
int main()
{
long a, b, c;
cin>>a;
cin>>b;
c=ucln(a,b);
cout<<c<<endl<<a/c *b;
return 0;
}
[QUOTE=10520355;67294]lần này xài kiểu long để anh Điệp khỏi bắt nữa. hì hì.
bội chung nhỏ nhất của hai số = tích của 2 số đó chia cho USCLN của 2 số đó luôn.
[/QUOTE]
công thức này hồi học tin đại cương mới ibk ![]()
có vẻ như cấp 3 mình bỏ qua nhiều thứ quá ![]()
[QUOTE=10520355;67294]lần này xài kiểu long để anh Điệp khỏi bắt nữa. hì hì.
bội chung nhỏ nhất của hai số = tích của 2 số đó chia cho USCLN của 2 số đó luôn.
#include <iostream>
using namespace std;
long a,b;
long USCLN(long a, long b)
{
return (b==0)?a:USCLN(b, a%b);
}
int main()
{
cin>>a>>b;
cout<<USCLN(a,b)<<" "<<((long long )a*b)/USCLN(a,b);
return 0;
}
[/QUOTE]
Hihi anh bắt lỗi đúng mừ ![]()
long long với kiểu long trong C++ hình như là như nhau :sure:
GDC ở đây chỉ in ra thui nhỉ?? Nếu cần lưu lại để làm cái khác thì sao nhỉ?? :funny:
mấy bài em post lên thì em đã test khá kĩ và test ngoài giới hạn của nó cả, rất là ok đó anh. hehe.
[QUOTE=10520355;67357]mấy bài em post lên thì em đã test khá kĩ và test ngoài giới hạn của nó cả, rất là ok đó anh. hehe.[/QUOTE] Hehe em nắm kiến thức lập trình tốt đấy :sogood: nhân tố hạt giống cho Olympic Tin Học UIT :go:
Mà anh có 1 thắc mắc ko bik em có phải em của anh Cao Văn An ko nhỉ??
ngoài lề thui nhé
[QUOTE=09520500;67360]Hehe em nắm kiến thức lập trình tốt đấy :sogood: nhân tố hạt giống cho Olympic Tin Học UIT :go:
Mà anh có 1 thắc mắc ko bik em có phải em của anh Cao Văn An ko nhỉ??
ngoài lề thui nhé[/QUOTE]
An Nhàn hả chú
Thì Cao Văn An - Cao Văn Nhàn . Ờ mà nghi cũng đúng ![]()
em là em trai của anh Cao Văn An. kakakakaka
:)))), quả không nằm ngoài dự đoán hehe
:happy: gia cát dự chuẩn như điên :misdoubt:
An Nhàn, hợp rầu ![]()
bài toán số 9 là bài toán tìm huyết thống :))
[QUOTE=11520447;67504]An Nhàn, hợp rầu ![]()
bài toán số 9 là bài toán tìm huyết thống :))[/QUOTE]
Sau này có bài toán tìm người yêu ra đời cho coi ![]()
Mà chưa có bài số 10 để bàn tán nhỉ ![]()
[QUOTE=09520281;67250]Bài số 8 đã kết thúc êm đẹp với một ý tưởng khá đơn giản nhưng lại hiệu quả của bạn Cao Văn Nhàn :look_down:. Chúng ta sẽ tiếp tục sang bài số 9, bài toán kinh điển mà hầu như rất hay gặp lúc đi test mấy công ty lập trình :badsmell:.
Bài toán:
GCD(Greatest common divisor - UCLN) hoặc LCM (Least common multiple - BCNN): Cho 2 số <= 2 tỉ, tìm GCD và LCM của nó.
Time limit:1s
Memory: 5MB
Ví dụ:
Input:
15 85
Output:
5---->//UCLN
255----->//BCNN
Have fun :happy:[/QUOTE]
Bài toán này học lớp 11 em cũng giải được ngon lành kaka