Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: Tìm BSCNN của dãy số

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    28

    Mặc định Tìm BSCNN của dãy số

    Em muốn hỏi cách làm tìm BSCNN của một dãy số

  2. #2
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Trích dẫn Nguyên bản được gửi bởi meocontaplamC Xem bài viết
    Em muốn hỏi cách làm tìm BSCNN của một dãy số
    Theo tôi cách này là ngắn nhất.
    1.Gọi hàm BSCNN(int, int) và truyền lần lượt hai phần tử liên tiếp của dãy cho đến khi eos ( end of string).
    Tuy nhiên còn cách khác là:
    1.Loại bớt các phần tử trùng nhau
    2.Rồi làm như trên
    Cách này thì rắc rối và dài.
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    28

    Emco giải thuật thế này:
    Bước 1:Tìm ước số chung lớn nhất:cho chay bien i từ số nhỏ nhất trong dãy về 0 khi tìm được số nào mà tất cả các số chia hết thì ta cho thoát khỏi vòng lặp ngay lập tức bằng lệnh break
    bước 2:tính tích của các số trong dãy rồi chia cho USCLN ta duoc ket qua nhu y muon
    moi người xem được ko rồi hồi lại cho em biêt mới

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    Đà Nẵng
    Bài viết
    41

    Hình như có cách tìm BSCNN từ UCLN mà
    À MeoCoNTapLamC nói rồi

  5. #5
    Ngày gia nhập
    03 2008
    Bài viết
    126

    uhm bạn làm đúng rồi đấy
    đây là code của mình. Nếu sai thì bạn nói cho mình biết nha
    Code:
    #include <stdio.h>
    #include <conio.h>
    int Min(int a[],int n)
    {
    	int lc=a[0];
    	for(int i=0;i<n;i++)
    		if(a[i]<lc)
    			lc=a[i];
    		return lc;
    }
    int TimUocMax(int a[],int n)
    {
    	int flag;
    	for(int i=Min(a,n);i>=1;i--)
    	{
    		flag=1;
    		for(int j=0;j<n;j++)
    			if(a[j]%i!=0)
    				flag=0;
    			if(flag!=0)
    				return i;
    
    	}
    }
    int BCLN(int a[],int n)
    {
    	int d=a[0];
    	for(int i=1;i<n;i++)
    		d=d*a[i];
    	int kq=d/TimUocMax(a,n);
    	return kq;
    }
    void main()
    {
    	int a[100],n;
    	printf("Nhap n: ");
    	scanf("%d",&n);
    	for(int i=0;i<n;i++)
    	{
    		printf("Nhap a[%d]: ",i);
    		scanf("%d",&a[i]);
    	}
    	printf("Boi So Chung Lon Nhat La: %d\n",BCLN(a,n));
    }

  6. #6
    Ngày gia nhập
    03 2008
    Bài viết
    126

    Mặc định Tìm BSCNN của dãy số

    chết nhầm rồi để mình code lại xem

  7. #7
    Ngày gia nhập
    03 2008
    Bài viết
    126

    bạn xem đúng chưa
    Code:
    #include <stdio.h>
    #include <conio.h>
    int Max(int a[],int n)
    {
    	int lc=a[0];
    	for(int i=0;i<n;i++)
    		if(a[i]>lc)
    			lc=a[i];
    		return lc;
    }
    int BCNN(int a[],int n)
    {
    	int flag;
    	for(int i=Max(a,n);i<=32767;i++)//32767 la gia tri gioi han cua kiu int
    	{
    		flag=1;
    		for(int j=0;j<n;j++)
    			if(i%a[j]!=0)
    				flag=0;
    			if(flag!=0)
    				return i;
    
    	}
    }
    void main()
    {
    	int a[100],n;
    	printf("Nhap n: ");
    	scanf("%d",&n);
    	for(int i=0;i<n;i++)
    	{
    		printf("Nhap a[%d]: ",i);
    		scanf("%d",&a[i]);
    	}
    	printf("Boi So Nho Nhat La: %d\n",BCNN(a,n));
    }

  8. #8
    Ngày gia nhập
    03 2008
    Bài viết
    16

    cach cua meocontaplamC ko duoc
    vi du nhu 2,3,4 BCNN là 12 ma theo cach nay thi BCNN la 24


    ban #include# lam sai nhieu loi qua
    Đã được chỉnh sửa lần cuối bởi Quanptit : 14-03-2008 lúc 04:11 AM.

  9. #9
    Ngày gia nhập
    03 2008
    Bài viết
    16

    bai tui giai ne
    da chay thu roi "em ru"


    C Code:
    1.    // chuong trinh tim BCNN cua 1 day so
    2.    #include<conio.h>
    3.    #include<stdio.h>
    4.    int BCNN(int a,int b){
    5.     int bcnn,i,max;
    6.    if(a>b) max=a;
    7.    if(b>=a) max=b;
    8.     for(i=max;i<=a*b;i++)
    9.      if((i%a==0)&&(i%b==0))  break;
    10.     bcnn=i;
    11.     return(bcnn);}
    12.    void main(){
    13.     int A[50],bcnn,i,n,s;
    14.      clrscr();
    15.    printf("\n nhap so phan tu cua day n=");scanf("%d",&n);
    16.     for(i=0;i<n;i++){
    17.     printf("\n nhap A[%d]=",i);scanf("%d",&A[i]);}
    18.        bcnn=A[0];
    19.     for(i=1;i<n;i++) {
    20.      s=BCNN(bcnn,A[i]);
    21.       bcnn=s;}
    22.      printf("\n BCNN cua day so la %d",bcnn);
    23.      getch();}

    Vui lòng viết tiếng Việt có dấu khi đưa bài viết của mình lên diễn đàn. Nếu bạn tiếp tục vi phạm bài viết của bạn sẽ bị xóa sạch.
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 15-03-2008 lúc 12:24 AM. Lý do: Nhắc nhở vi phạm

  10. #10
    Ngày gia nhập
    03 2008
    Bài viết
    126

    Code:
    ban #include# lam sai nhieu loi qua
    quanptit bạn có thể cho mình biết mình làm sai chổ nào không
    mình làm bằng vc++
    mình thấy test thử vẫn đúng??

Các đề tài tương tự

  1. Lập trình C | Tính USCLN và BSCNN?
    Gửi bởi grubkhukho trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 19-08-2015, 10:29 AM
  2. BSCNN | bội số chung nhỏ nhất | Tìm BSCNN
    Gửi bởi nguoingu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 21
    Bài viết cuối: 21-11-2013, 09:43 PM
  3. Ucln & Bscnn
    Gửi bởi bannhacuagai trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 7
    Bài viết cuối: 10-08-2012, 12:53 PM
  4. Tìm BSCNN của mảng một chiều trong lập trình C++. Kết quả sai: BSCNN = tích các số trong mảng luôn?
    Gửi bởi boy_lonely_0106 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 25-01-2011, 01:07 PM
  5. Tính USCLN và BSCNN
    Gửi bởi ximachaos trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 19-08-2009, 07:49 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn