Hiển thị kết quả từ 1 đến 5 / 5
  1. #1
    Tham gia
    30-01-2004
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts

    Mot bai QHD tuong doi kho !!!

    Cho F(x) là số nhiều nhất các phần tử khi tách x thành tổng các số nguyên tố, mỗi số chỉ xuất hiện 1 lần, trừ một số có thể xuất hiện 2 lần
    VD F(2) = 1 (vi 2 = 2)
    F(7) = 3 (vi 7 = 2 + 2 +3)
    Hay tinh F(x)
    Quote Quote

  2. #2
    Tham gia
    30-01-2004
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts
    Không ai giải được sao ??? Hay là dễ wá ?

  3. #3
    Tham gia
    06-02-2004
    Bài viết
    28
    Like
    0
    Thanked 0 Times in 0 Posts
    Bài này cũng ko khó lắm đâu
    Để lần khác tui post lên nha

  4. #4
    Tham gia
    17-02-2003
    Bài viết
    35
    Like
    0
    Thanked 0 Times in 0 Posts
    Hãy tính F1(x) là cách phân tích số x thành tổng các số nguyên tố mà mỗi số chỉ dùng một lần. Sau đó for thêm một vòng cho số nguyên tố xuất hiện 2 lần và tính F.

  5. #5
    Tham gia
    25-12-2003
    Location
    Hà Nội
    Bài viết
    14
    Like
    0
    Thanked 0 Times in 0 Posts
    ldt116 chạy thử chương trình này xem, góp ý nữa

    uses crt;
    const p:array[1..16] of integer=(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47, 49);
    n=16;m=100;
    var f:array[0..m] of integer;

    procedure xuly;
    var sum,i,j:integer;
    begin
    sum:=0;
    for i:=1 to m do f[i]:=-1;
    f[0]:=0;
    for i:=1 to n do
    begin
    for j:=sum downto 0 do
    if f[j]<>-1 then
    if f[j+p[i]]<f[j]+1 then f[j+p[i]]:=f[j]+1;
    sum:=sum+p[i];
    if sum>m then sum:=m;
    end;
    for i:=m downto 0 do
    begin
    for j:=1 to n do
    if (p[j]<i) then
    if f[i-p[j]]+1>f[i] then f[i]:=f[i-p[j]]+1;
    end;
    end;

    begin
    xuly;
    for i:=2 to m do write(f[i],' ');
    end.
    Attached Files

Bookmarks

Quy định

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