Follow us on...
Follow us on Facebook

VN-Zoom.com chung tay vì Cộng đồng

Kaka - ứng dụng hát Karaoke trên mobile

Tuyển Mod Mobile diễn dàn Vn-Zoom.com 2014

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Vui thể thao quà ý nghĩa

VPS siêu rẻ cho VNZ 150k/tháng.Server 2 CPU, 16GB RAM,300GB SAS 3tr/tháng
kết quả từ 1 tới 7 trên 7
  1. #1
    giabao_luong's Avatar
    giabao_luong vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Apr 2011
    Bài
    172
    Cảm ơn
    10
    Điểm
    1.259/120 bài viết
    VR power
    0

    Default Thuật toán : Tìm chữ số nguyên tố lớn nhất

    Cho mình hỏi thuật toán tìm chữ số nguyên tố lớn nhất
    N = 12746 => maxnt = 7
    N = 444 => maxnt = 0
    mình có thuật toán, nhưng chạy ra sai kết quả mất! Các bạn giúp mình giải thuật toán này với
    //Tim chu so nguyen to lon nhat
    int TimChuSoNTMax( int n)
    {
    int Max, m = n;
    while(n!=0)
    {
    if(KiemTraSNT(m%10 ==1))
    Max = m%10; break;
    m = m/10;
    }
    while( n!=0)
    {
    if((KiemTraSNT(n%10)==1) && (Max<n%10))
    Max = n%10;
    n = n/10;
    }
    return Max;
    }

  2. #2
    god250895's Avatar
    god250895 vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Jul 2011
    Đến từ
    Thanhhoa City
    Bài
    550
    Cảm ơn
    374
    Điểm
    194/103 bài viết
    VR power
    0

    Default

    Mình dùng TP Mình nghĩ thuật toán nó như thế này:

    B1: Tạo 2 mảng, đếm số chữ số của số nhập vào.
    B2: Gán các chữ số đó cho mảng 1.
    B3: Tìm các số nguyên tố trong mảng 1
    B4: Gán các số vừa tìm thấy vào mảng 2.
    B5: Tìm max trong mảng 2 (Cái này thì dễ rồi nhé)

  3. Có 1 thành viên cảm ơn god250895 cho bài viết này:
    giabao_luong (03-11-2011)

  4. #3
    hacphieu's Avatar
    hacphieu vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Mar 2009
    Bài
    177
    Cảm ơn
    186
    Điểm
    40/33 bài viết
    VR power
    0

    Default

    mình không đọc code nhưng mà mình thắc mắc đề bìa. là N của bạn là một số nguyên có nhiều chữ số đúng không? vậy nếu mà từng chữ số đó không có số nguyên tố thì đề xử lý thế nào??(test case của bạn 444 không có chữ số nguyên tố nào)
    mình không hiểu ý tưởng của bạn là như thế nào nên cũng hk biết sửa code sao ak
    to be continue
    to be continue
    to be continue
    to be continue
    to be continue
    to be continue
    to be continue
    rảnh quá Hidden Content

  5. #4
    zZTuanVipzZz's Avatar
    zZTuanVipzZz vẫn chưa có mặt trong diễn đàn Rìu Bạc
    Tham gia
    Aug 2008
    Bài
    384
    Cảm ơn
    72
    Điểm
    97/81 bài viết
    VR power
    0

    Default

    sai dk vong lặp, (khi xây dựng hàm ktnt bạn phải return 1 hoặc 0 )
    gộp 2 cái vòng lặp lại thành 1 cho ngắn gọn

    while(m!=0)
    { if ((ktnt(m%10)==1))&&(m%10)>max) max=m%10;
    m=m/10;
    }

    ---------- Bài thêm lúc 08:04 ---------- Bài trước là lúc 07:58 ----------

    Trích god250895 View Post
    Mình dùng TP Mình nghĩ thuật toán nó như thế này:

    B1: Tạo 2 mảng, đếm số chữ số của số nhập vào.
    B2: Gán các chữ số đó cho mảng 1.
    B3: Tìm các số nguyên tố trong mảng 1
    B4: Gán các số vừa tìm thấy vào mảng 2.
    B5: Tìm max trong mảng 2 (Cái này thì dễ rồi nhé)
    đâu cần gì đến mảng

  6. Có 1 thành viên cảm ơn zZTuanVipzZz cho bài viết này:
    giabao_luong (03-11-2011)

  7. #5
    giabao_luong's Avatar
    giabao_luong vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Apr 2011
    Bài
    172
    Cảm ơn
    10
    Điểm
    1.259/120 bài viết
    VR power
    0

    Default

    Ý mình là N là số nguyên tố có nhiều chữ số

  8. #6
    god250895's Avatar
    god250895 vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Jul 2011
    Đến từ
    Thanhhoa City
    Bài
    550
    Cảm ơn
    374
    Điểm
    194/103 bài viết
    VR power
    0

    Default

    Trích giabao_luong View Post
    Ý mình là N là số nguyên tố có nhiều chữ số
    đâu cần gì đến mảng
    Thế thì phải dùng mảng r.

  9. #7
    zZTuanVipzZz's Avatar
    zZTuanVipzZz vẫn chưa có mặt trong diễn đàn Rìu Bạc
    Tham gia
    Aug 2008
    Bài
    384
    Cảm ơn
    72
    Điểm
    97/81 bài viết
    VR power
    0

    Default

    ý của bạn mình vẫn chưa hiểu rõ
    có phải trường hợp này?
    n=14974 => maxnt = 1497(xét chiều trái->phai,ko có đổi vị trí chữ số);
    nếu trường hợp này thì bạn đưa các chữ số vào một mảng,dùng vòng lặp duyệt các phần tử của mang và ktnt
    vd minh họa trên:
    14974 => a[0]=4, a[1]=7,[2]=9,a[3]=4,a[4]=1
    sdt ban đầu gán =0
    sdt=0*10+a[4]=1 la sont=> maxnt =1;
    sdt=sdt*10+a[3]=14 ko la sont=> maxnt vẫn la 1
    sdt=sdt*10+a[2]=149 la sont=> maxnt =149
    sdt=sdt*10+a[1]=1497 la sont=> maxnt =1497
    sdt=sdt*10+a[0]=14974 ko la sont=> maxnt vẫn là 1497
    kết thúc vòng lặp maxnt =1497



    int skt=0,k=0,a[100];
    while( n!=0)
    {
    a[k]= n%10;
    n = n/10;k++;
    }
    for(int i=k;i>=0;i--)
    {skt=skt+a[k];
    if (ktnt(skt==1) maxnt=skt;}
    Thay đổi nội dung bởi zZTuanVipzZz; 03-11-2011 lúc 19:22.

  10. Có 1 thành viên cảm ơn zZTuanVipzZz cho bài viết này:
    auauau97 (03-11-2011)

 

 

Quyền sử dụng

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