Hiển thị kết quả từ 1 đến 7 / 7
  1. #1
    Tham gia
    23-06-2009
    Location
    Huyện Gia Bình - Tỉnh Bắc Ninh
    Bài viết
    323
    Like
    0
    Thanked 4 Times in 4 Posts

    Tính tổng của 2 số cực lớn

    Tính tổng của 2 số cực lớn(mỗi số không ít hơn 45 chữ số}
    Quote Quote

  2. #2
    Tham gia
    14-07-2011
    Bài viết
    179
    Like
    3
    Thanked 83 Times in 68 Posts
    xài xâu rồi cộng theo cách thông thường

  3. #3
    Tham gia
    20-06-2008
    Location
    trong phòng, không đi đâu cả
    Bài viết
    1,455
    Like
    176
    Thanked 98 Times in 77 Posts
    quy sang chuỗi, rồi dùng các hàm tách chuỗi này nọ, cộng theo kiểu ngày xưa học cộng vậy, sáu cộng sáu bằng mười hai, viết hai nhớ một ... chính xác là bao nhiu số cũng cộng được chứ không chỉ 45 số đâu

  4. #4
    Tham gia
    24-02-2008
    Bài viết
    260
    Like
    6
    Thanked 23 Times in 21 Posts

  5. #5
    Tham gia
    05-05-2004
    Bài viết
    216
    Like
    2
    Thanked 8 Times in 8 Posts
    Thuật toán: Sử dụng chuỗi
    B1: Đồng nhất độ dài của 2 chuỗi bằng cách thêm số 0 vào đầu chuỗi ngắn
    B2: Cộng từng phần tử từ cuối xâu về đâu (khi cộng dùng thủ val chuyển ký tự thành chuỗi và cộng xong dùng thủ tục str chuyển ngược lại số thành ký tự chuyển vào xâu kết quả (chú ý nếu 1 vị trí cộng quá 9 thì dùng hàm mod lấy phần đơn vị thôi, phần chữ số hàng chục cộng vào nhớ của số cộng tiếp theo)

  6. Thành viên Like bài viết này:


  7. #6
    Tham gia
    24-02-2008
    Bài viết
    260
    Like
    6
    Thanked 23 Times in 21 Posts
    bài của bạn đây =>

    NGUỒN : HTTP://PASCALVN.COM

    PHP Code:
    program cong_mang;
    var 
    a,b,c:array***91;0..1000***93; of shortint;
    max,n,m:integer;
    procedure nhap;
    var 
    i:integer;
    begin
    write
    ('nhap m,n=');readln(m,n);
    fillchar(a,sizeof(a),0);
    fillchar(b,sizeof(b),0);c:=b;
    for 
    i:=1 to m do
    begin
    write
    ('a***91;',i,'***93;=');readln(a***91;i***93;);
    end;
    for 
    i:=1 to n do
    begin
    write
    ('c***91;',i,'***93;=');readln(c***91;i***93;);
    end;
    end;
    procedure xuli;
    var 
    sodu,nho,tong,i:integer;
    begin
    if m>n then max:=else max:=n;
    if 
    m>n then for i:=max downto (m-n+1) do b***91;i***93;:=c***91;i-m+n***93; else
    for 
    i:=max downto (n-m+1) do b***91;i***93;:=c***91;i-n+m***93;;
    nho:=0;
    for 
    i:=max downto 1 do
    begin
    tong
    :=a***91;i***93;+b***91;i***93;+nho;
    sodu:=tong mod 10;
    nho:=tong div 10;
    c***91;i***93;:=sodu;
    end;
    c***91;0***93;:=nho;
    end;
    procedure xuat;
    var 
    i:integer;
    begin
    if c***91;0***93;<>0 then for i:=0 to max do write(c***91;i***93;)
    else for 
    i:=1 to max do write(c***91;i***93;);
    end;
    begin
    nhap
    ;
    xuli;
    xuat;
    readln;
    end

  8. Thành viên Like bài viết này:


  9. #7
    Tham gia
    24-02-2008
    Bài viết
    260
    Like
    6
    Thanked 23 Times in 21 Posts
    lỗi rồi các bạn sang đây xem nhé

    http://pascalvn.com/showthread.php?tid=10&pid=10#pid10

  10. Thành viên Like bài viết này:


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
  •