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

Đề tài: cách tính tổng lần lượt các số trong mảng một chiều

  1. #1
    Ngày gia nhập
    05 2011
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    114

    Mặc định cách tính tổng lần lượt các số trong mảng một chiều

    mong mọi ngừoi giúp tớ thuật toán này
    ví dụ cho một mảng gồm
    a1=2
    a2=6
    a3=4
    a4=12
    để Khi in ra ta sẽ có 1 mảng như sau:
    ....... a1........a2..................a3.................. ..a4....................
    0..............0+2.......0+2+6.............0+2+6+4 ............0+2+6+4+12

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    ko hiểu vd lắm.cho rõ cái đề đi bạn
    HT117-5277

  3. #3
    Ngày gia nhập
    05 2011
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    114

    tức là thế này ta có một dãy gồm các số a,b,c,d
    viết hàm làm sao để khi in ra ta có 1 dãy:
    0 0+a 0+a+b 0+a+b+c 0+a+b+c+d

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    1. Đặt một chuỗi ký tự s[100]
    2. Đặt s[0] = '0'; s[1] = '\0';
    3. Dùng vòng lặp đọc chuỗi số i=0 đến n-1 (n là số phần tử trong mảng số)
    3.1 Chèn tiếp '+' và trị của chuoiSo[i] vào sau chuỗi s
    3.2 in chuỗi s ra màn hình
    3.3 hết vòng lặp
    Đã được chỉnh sửa lần cuối bởi VoTichSu : 09-12-2011 lúc 08:03 AM.

  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    552

    ^ cách của tiền bối VTS là tối ưu rồi đó bạn gì ơi
    Thoạt đầu nhìn vào cái đề kia cứ lẩm bẩm trong đầu có vẻ là sẽ ra dạng 1+2+...+n ra cái độ phức tạp n^2 .
    1)Cho vòng for chạy i :0 ->n. Rồi vòng j chạy từ 0->i . In ra a[j] . Cách này cùi bắp quá chắc bạn ko thích đâu
    2)Suy nghĩ thấy: Ồ sao công việc in sau chỉ là : In trước + in hiện tại ?? Thì việc zi` phải làm lại công việc "in trước". Nghĩ ngay đến việc dùng mảng để lưu "công việc trước".
    Mà ngặt nỗi mảng khi in ra lại phải duyệt nên lại lòi cái "vớ vẩn 1" trên ). Chắc bạn cũng ko thích đâu .
    3)Lọ mọ thấy có dính mùi đệ quy, thử đệ quy phát xem có nhanh ko

    4)Nhưng ở giải pháp 2, ta thay = chuỗi. dùng được chuỗi và xem công việc in chuỗi ra có độ phức tạp 1 thì sẽ chỉ còn là O(n) mà thôi
    Best !!!
    Đã được chỉnh sửa lần cuối bởi clchicken : 09-12-2011 lúc 09:29 AM.
    Um Mani Padme Hum...!!

  6. #6
    Ngày gia nhập
    05 2011
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    114

    Mặc định cách tính tổng lần lượt các số trong mảng một chiều

    cảm ơn các bạn
    nhưng bạn ơi bạn có thể nói rõ
    3.1 Chèn tiếp '+' và trị của chuoiSo[i] vào sau chuỗi s
    Để đơn giản hơn:
    ví dụ cho 1 dãy gồm các số 1,2,5,6
    khi in ra ta có : 0,1,3,8,14(tức là nó cộng lần lượt các số trên dãy ,cứ cộng thêm 1 giá trị thì lại in ra)
    các bạn có thể chỉ rõ thuật toán đc ko
    Đã được chỉnh sửa lần cuối bởi snoit : 09-12-2011 lúc 11:21 AM.

  7. #7
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Ặc. Tưởng thế nào. Tưởng là đòi in ra "1+2+3+..." chứ @@
    Chứ in tổng thì ...
    Thì nó giống cộng dồn thôi, có gì đâu bạn ? . Cộng xong 1 phát thì in ra luôn.
    Um Mani Padme Hum...!!

  8. #8
    Ngày gia nhập
    05 2011
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    114

    mình đã ra thuât toán
    cảm ơn bạn
    Code:
    float tong=0;
    			cout<<tong<<"\t";
    			for(int i=0;i<n;i++)
    				{
    				tong=tong+P[i];
    				cout<<"\t"<<tong<<" \t";
    				}

  9. #9
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Rút kinh nghiệm lần sau hỏi thì hỏi rõ ràng hơn nhé bạn.
    Um Mani Padme Hum...!!

Các đề tài tương tự

  1. Mảng 2 chiều vào trong hàm bị chuyển thành mảng 2 chiều , tại sao ???
    Gửi bởi kwideur trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 06-07-2013, 08:35 PM
  2. Trả lời: 2
    Bài viết cuối: 21-04-2013, 09:46 AM
  3. Lỗi: bố cục trang web tự tăng theo chiều ngang khi chiều cao thay đổi
    Gửi bởi tuanngocpt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 16-03-2013, 11:25 PM
  4. Trả lời: 1
    Bài viết cuối: 28-04-2012, 09:43 PM
  5. Trả lời: 0
    Bài viết cuối: 04-11-2011, 03:38 PM

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