Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: [C]Bài toán số 5 may mắn

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

    Cool [C]Bài toán số 5 may mắn

    Ban nhạc FIVE là ban nhạc đã rất nổi tiếng. Họ vừa đưa ra một cuộc thi dành cho những fan của mình. Ban nhạc đưa ra một số N và một số K. Hãy tìm số nhỏ nhất mà lớn hơn N trong đó có chứa đúng K số 5. Người giải được nhanh nhất là người sẽ dành được phần quà đặc biệt của ban nhạc.
    Ví dụ:
    Vào:
    n=595
    k=2
    Ra:
    655

    Mọi người thử lập trình để giải quyết bài toán này nhé.

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Chẳng hiểu để làm gì nữa !

  3. #3
    No Avatar
    Leon88 Khách

    #include<iostream.h>
    #include<conio.h>
    #include<string.h>
    #include<stdlib.h>
    char chuoiso[100],a[1];
    int mangso[100],a1[100];
    int i,k,n,j;
    void nhap()
    {
    cout<<"Nhap vao so N : ";
    cin>>chuoiso;
    cout<<"Nhap vao so K : ";
    cin>>k;
    n=strlen(chuoiso);
    mangso[0]=0;
    for (i=0;i<=strlen(chuoiso)-1;i++)
    {
    a[0]=chuoiso[i];
    a[1]=' ';
    mangso[i+1]= atoi (a);
    }
    }

    void xuly()
    {
    int d;

    for (i=0;i<=n;i++) a1[i]=0;
    a1[n]=1;
    j=0;d=0;mangso[0]=0;
    for (i=1;i<=n;i++) if (mangso[i]==5) j++;
    do
    {
    for (i=n;i>=0;i--)
    {
    if (mangso[i]==5) j--;
    mangso[i]=a1[i]+mangso[i]+d;
    d=0;
    if (mangso[i]/10==1) {d=1;mangso[i]=mangso[i]%10;}
    if (mangso[i]==5) j++;
    if (d==0) break;
    }
    }
    while (j!=k);
    }
    void xuat()
    {
    for (i=0;i<=n;i++) cout<<mangso[i];
    }
    main()
    {
    clrscr();
    nhap();
    xuly();
    xuat();
    return 0;
    }
    Đã test :
    781346503
    4
    => 781350555

    159
    1
    => 165


    150
    1
    => 151

    Bài này mình chỉ xử lý số có 100 chữ số thôi. Bạn nào có cách hay hơn xin post lên để tham khảo.

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