Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Giúp các bé đáng thương ấy với

Gameshow “Ai Là Triệu Phú” trên VTV đang chờ đón bạn – Tải ngay!

Bán đấu giá ủng hộ từ thiện

Ngập tràn ưu đãi cho tín đồ công nghệ tại sony show 2014

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

Tin tức công nghệ mới
kết quả từ 1 tới 14 trên 14
  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
    171
    Cảm ơn
    10
    Điểm
    1.255/119 bài viết

    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
    557
    Cảm ơn
    381
    Điểm
    194/102 bài viết

    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
    176
    Cảm ơn
    185
    Điểm
    40/33 bài viết

    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
    http://thuongthuctm.blogspot.com/

  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
    433
    Cảm ơn
    91
    Điểm
    99/83 bài viết

    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
    171
    Cảm ơn
    10
    Điểm
    1.255/119 bài viết

    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
    557
    Cảm ơn
    381
    Điểm
    194/102 bài viết

    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
    433
    Cảm ơn
    91
    Điểm
    99/83 bài viết

    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)

  11. #8
    wright0101's Avatar
    wright0101 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Mar 2012
    Bài
    2
    Cảm ơn
    0
    Điểm
    0/0 bài viết

    Default

    chuyển số đó thành mảng:
    12746 -> 1 2 7 4 6
    Bạn ban đầu cho biến i chạy từ vị trí 1 cho đến n chữ số.
    tại vị trí i thì cho j chạy từ i cho đến n
    lúc đó kiểm tra các chữ số từ i -> j có phải là snt hay ko.
    vd
    i=1 thì các số lần lượt là
    1 12 127 1274 12746
    tương tự
    i=2
    2 27 274 2746
    i=3
    7 74 746
    i=4
    4 46
    i=5
    6
    => 7 là snt.
    Mình cung cấp thuật toán đóng góp ý kiến thế thôi. mong mọi người thông cảm.
    Thay đổi nội dung bởi wright0101; 19-06-2014 lúc 21:38.

  12. #9
    programmer2010's Avatar
    programmer2010 vẫn chưa có mặt trong diễn đàn Rìu Chiến Chấm
    Tham gia
    Feb 2010
    Bài
    2.638
    Cảm ơn
    39
    Điểm
    658/595 bài viết

    Default

    ^ sao ko ghi if bằng 2 OR bằng 3 OR ... cho nhanh

  13. #10
    o0olllforeverlllo0o's Avatar
    o0olllforeverlllo0o vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Feb 2014
    Đến từ
    Vĩnh Phúc
    Bài
    237
    Cảm ơn
    60
    Điểm
    23/22 bài viết

    Default

    FPC:
    Code:
    uses crt;
    var a:array[1..100] of 0..9;
        i,max:integer;
        ch:char;
    begin
     max:=0;
     i:=0;
     repeat
      ch:=readkey;
      write(ch);
      If ch<>#13 then
      begin
       inc(i);
       val(ch,a[i]);
       If a[i] in [2,3,5,7] then
       If max<a[i] then max:=a[i];
      end;
     until ch=#13;
     writeln;
     writeln(max);
    end.
    Mình chưa test
    nhÌn gÌ đÓ II iU hEm mỪk nhÌn

  14. #11
    quanghspro's Avatar
    quanghspro vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Oct 2013
    Đến từ
    vĩnh phúc
    Bài
    149
    Cảm ơn
    19
    Điểm
    118/79 bài viết

    Default

    Trích giabao_luong View Post
    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;
    }
    int maxnt( int n)
    { int i;
    int max=0;
    while (n>=0)
    { i= n%10;
    n=n/10;
    if (i=2)||(i=3)||(i=5)||(i=7) {
    if (i>=max) {max=i}}
    }
    return max;
    }

  15. #12
    o0olllforeverlllo0o's Avatar
    o0olllforeverlllo0o vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Feb 2014
    Đến từ
    Vĩnh Phúc
    Bài
    237
    Cảm ơn
    60
    Điểm
    23/22 bài viết

    Default

    Ép vào 1 mảng rồi dùng hàm Math.max(...) của mảng đó là được
    nhÌn gÌ đÓ II iU hEm mỪk nhÌn

  16. #13
    programmer2010's Avatar
    programmer2010 vẫn chưa có mặt trong diễn đàn Rìu Chiến Chấm
    Tham gia
    Feb 2010
    Bài
    2.638
    Cảm ơn
    39
    Điểm
    658/595 bài viết

    Default

    ^ Ơ, đây là C muh

  17. Có 1 thành viên cảm ơn programmer2010 cho bài viết này:
    o0olllforeverlllo0o (21-06-2014)

  18. #14
    o0olllforeverlllo0o's Avatar
    o0olllforeverlllo0o vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Feb 2014
    Đến từ
    Vĩnh Phúc
    Bài
    237
    Cảm ơn
    60
    Điểm
    23/22 bài viết

    Default

    Em lộn
    nhÌn gÌ đÓ II iU hEm mỪk nhÌn

 

 

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
  •