Hiển thị kết quả từ 1 đến 10 / 10
Chủ đề: Tìm Bội Chung nhỏ nhất
-
06-06-2009 14:06 #1
Registered User
- Tham gia
- 05-06-2009
- Bài viết
- 47
- Like
- 0
- Thanked 1 Time in 1 Post
Tìm Bội Chung nhỏ nhất
ucln thì em làm được nhưng còn bcnn thì potay, anh em nào giúp giùm cái code tìm bcnn của 2 số nguyên ,thanks nhiều
nhớ là code C for Dos ok! cám ơn trước
-
07-06-2009 09:40 #2
Registered User
- Tham gia
- 30-04-2009
- Bài viết
- 21
- Like
- 0
- Thanked 0 Times in 0 Posts
#include <stdio.h>
void main()
{
int a,b,max,min,z=1;
printf("nhap so a,b ");
scanf("%d%d",&a,&b);
if(a>=b)
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
for(int i=1;(i<=max)&&(z!=0);i++)
{
if((i*min)%max==0)
{
printf("BCNN cua %d va %d la %d",a,b,i*min);
z=0;
}
else
z=1;
}
}
đây là bài của mình
-
07-06-2009 14:33 #3
Bạn lấy tích 2 số chia cho ucln sẽ đc bcnn.
Đơn giản thế thôi.
-
07-06-2009 20:15 #4
Registered User
- Tham gia
- 05-06-2009
- Bài viết
- 47
- Like
- 0
- Thanked 1 Time in 1 Post
cảm ơn đơn giản thế mà mình không nghĩ ra nhưng mà mình viết đoạn code ucln trả giá trị về a:
int ucln(int &a,int b)
{
int t=0;
while(b>0)
{
t=a%b;
a=b;
b=t;
}
return a;
}
, do đó không thể tính giá trị (a*b)/ucln(a,b); được, vì như vậy máy sẽ nhầm là (a*b)/a==b;, bạn giúp mình luôn cái code cụ thể nha thanksĐược sửa bởi vncvubc lúc 20:37 ngày 07-06-2009
-
07-06-2009 20:56 #5
khai báo thêm 2 biến nữa x=a và y=b như vậy sẽ tính dc
x*y/ucln(a,b)
-
08-06-2009 14:33 #6
Registered User
- Tham gia
- 30-04-2009
- Bài viết
- 21
- Like
- 0
- Thanked 0 Times in 0 Posts
BSCNN co the lam theo 2 cach 1 cach dung cong thuc toan hoc,cach con lai co the dung vong lap nhung toi thay dung vong lap gon hon do ko can viet them 1 ham USCLN
-
08-06-2009 17:57 #7
code cụ thể nè


#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();
int a,b;
long bsc;
printf("Nhap so thu nhat:"); scanf("%d",&a);
printf("Nhap so thu hai:"); scanf("%d",&b);
bsc=a*b;
while (a!=b)
if (a>b) a=a-b; else b=b-a;
printf("Ket qua:\n");
printf("Uoc so chung lon nhat: %d\n",a);
printf("Boi so chung nho nhat: %ld",bsc/a);
getch();
}
-
30-12-2009 03:59 #8
Chào bạn!!
Bạn nói như vậy chứng tỏ bạn không hiểu về bản chất của hàm. Trong thân hàm, các phép toán được xử lý và trả về qua return không liên quan, và ko làm ảnh hưởng tới các tham số truyền vào. Vì vậy ở đây, sau khi bạn gọi hàm ucln(a,b) nó sẽ trả về là một giá trị mà thôi, không có chuyện máy hiểu lầm (a*b)/ucln(a,b) thành (a*b)/a được... Bạn xem kỹ lại đi nhé!!
Một điểm nữa là trong trường hợp này, bạn cũng ko cần dùng phép truyền tham chiếu, bởi hàm đã trả về qua return rồi, phép dùng tham chiếu ở đây sẽ gây ra sự thừa, lãng phí..
-
30-12-2009 10:21 #9
Xem ở đây đi:
Tìm bội số chung nhỏ nhất trên C
Đủ hết các loại!http://diendan.congdongcviet.com <= Xem rồi biết!
-
31-12-2009 07:35 #10
Registered User
- Tham gia
- 19-03-2009
- Bài viết
- 9
- Like
- 0
- Thanked 0 Times in 0 Posts
#include <stdio.h>
#include <conio.h>
#include<iostream.h>
int ucln(int a; int b)
{
if(a<b)
{
int c=a; a=b;b=c;
}
else
if(a>=b)
{
if((a mod b)==0)return b;
else return ucln(b;a mod b);
}
};
int bcnn(int a; int b)
{
int c= ucln(a;b)
return (a*b)/c;
};
void main()
{
int a,b;
cout<<"nhap 2 so:";
cout<<"a= ";cin>>a;
cout<<"\nb= ";cin>>b;
cout<<" Boi chung nho nhat cua a va b la: "<<bcnn(a;b);
}


Quote

Bookmarks