Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: Tính tổng S=1+1*2+...+1*2*n trong C?

  1. #1
    Ngày gia nhập
    10 2010
    Nơi ở
    TP.HCM
    Bài viết
    9

    Post Tính tổng S=1+1*2+...+1*2*n trong C?

    Đề bài thế này: Tính S = 1 + 1.2 + 1.2.3+ ........+ 1.2...n.
    Bạn nào giúp mình giải quyết bài này nhe.
    Thanks!

  2. #2
    Ngày gia nhập
    08 2011
    Bài viết
    3

    S= 1! + 2 ! + .... +n!
    Thử viết bằng for ko biết có đúng ko.

    C Code:
    1. void main()
    2. {
    3. clrscr();
    4. int i,j,n,s=1,q=0;
    5.  
    6. nhap:printf("\n nhap n : "); scanf("%d",&n);
    7. if(n<1) goto nhap;
    8. if(n==1) q=1;
    9. for(i=n;i>1;i--)
    10. {
    11.  for(j=1;j<=i;j++)
    12.  {
    13.    s*=j;
    14.  }
    15.  q+=s;
    16.  s=1;
    17. }
    18. printf("\n kq= %d ",q);
    19. getch();
    20. }
    Đã được chỉnh sửa lần cuối bởi ChinShu : 21-08-2011 lúc 10:17 AM.

  3. #3
    Ngày gia nhập
    07 2011
    Bài viết
    12

    Code đúng 100% nè


    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5. int i, n, a=1;
    6. long int s=0;
    7. printf("Moi nhap n: ");
    8. scanf("%d",&n);
    9. if(n>=1)
    10. {
    11. for(i=1;i<=n;i++)
    12. {
    13. a*=i;
    14. s+=a;
    15. }
    16. printf("Tong la %ld", s);
    17. }
    18. else
    19. printf("Khong duoc nhap n be hon 1");
    20. getch();
    21. }
    Đã được chỉnh sửa lần cuối bởi HoangCoi : 21-08-2011 lúc 03:03 PM.

  4. #4
    Ngày gia nhập
    12 2010
    Nơi ở
    Cần thơ
    Bài viết
    273

    Tớ sữa lại tí nhé:
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5. int n;
    6. long int s=0;
    7. printf("n : ");
    8. scanf("%d%*c",&n);
    9. if (n<1)
    10. {
    11.    printf("n phai lon hon 0");
    12.    scanf("%*c");
    13.    return;
    14. }
    15. for(int i=0;i<n;i++)
    16. {
    17.    long int a=1;
    18.    for(int j=1;j<=n;j++) a*=j;
    19.    s+=a;
    20. }
    21. printf("Tong la %ld", s);
    22. scanf("%*c");
    23. }
    Ai bất tài, tôi nhìn hoài chẳng thấy,
    Đi khắp phòng tôi lấy 1 tấm gương,
    Khẽ đặt lên một góc phía bức tường,
    Nhìn vào đó, tôi tận tường kẻ đó.

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

    thêm bài giải bằng đệ quy


    C Code:
    1. #include <stdio.h>
    2.  
    3. int giaithua(int x)
    4. {
    5.     if(x==0 || x==1)
    6.     return 1;
    7.     else
    8.     return x*giaithua(x-1);
    9. }
    10.  
    11. int main()
    12. {
    13.     int n;
    14.     long s=0;
    15.     printf("\n nhap so :");
    16.     scanf("%d",&n);
    17.  
    18.    
    19.     for(int i=1;i<=n;i++)
    20.     {
    21.     s+=giaithua(i);
    22.     }
    23.    
    24.    
    25.     printf("\n tong =%ld",s);
    26.     printf("\n ");
    27.     return 0;
    28. }

  6. #6
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Mặc định Tính tổng S=1+1*2+...+1*2*n trong C?

    Trích dẫn Nguyên bản được gửi bởi azurelonely Xem bài viết
    Tớ sữa lại tí nhé:
    C Code:
    1. ...
    Sửa từ O(n) thành O(n^2).. Pó tay con gà quay 8-}
    Sửa gì thì sửa, chứ sửa thuật toán (thay đổi độ phức tạp của thuật toán) thì là viết code mới rồi chứ không gọi là sửa nữa!

    Tui thấy bài của HoangCoi là ổn nhất ở đây rồi. Các bài khác đều O(n^2) một cách không cần thiết.

  7. #7
    Ngày gia nhập
    12 2010
    Nơi ở
    Cần thơ
    Bài viết
    273

    Trích dẫn Nguyên bản được gửi bởi kutatowa05 Xem bài viết
    Đề bài thế này: Tính S = 1 + 1.2 + 1.2.3+ ........+ 1.2...n.
    Bạn nào giúp mình giải quyết bài này nhe.
    Thanks!
    Trích dẫn Nguyên bản được gửi bởi fbchicken Xem bài viết
    Sửa từ O(n) thành O(n^2).. Pó tay con gà quay 8-}
    Sửa gì thì sửa, chứ sửa thuật toán (thay đổi độ phức tạp của thuật toán) thì là viết code mới rồi chứ không gọi là sửa nữa!

    Tui thấy bài của HoangCoi là ổn nhất ở đây rồi. Các bài khác đều O(n^2) một cách không cần thiết.
    Có lẽ tớ lẫn lộn giữa S= 1+ 1.2 + 1.2.3+...+1.2.3..n.

    Đọc mà không hiểu ng ta muốn nói gì, lời nói thì lại chói tai...có lẽ có ng con tệ hơn cả tớ về đạo đức
    Ai bất tài, tôi nhìn hoài chẳng thấy,
    Đi khắp phòng tôi lấy 1 tấm gương,
    Khẽ đặt lên một góc phía bức tường,
    Nhìn vào đó, tôi tận tường kẻ đó.

  8. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. int giaithua(int n)
    4. {
    5.     return n>1?n*giaithua(n-1):1;
    6. }
    7. int tong(int n)
    8. {
    9.     return n>1?giaithua(n)+tong(n-1):1;
    10. }
    11. void main()
    12. {
    13.     printf("%d",tong(3));
    14.     getch();
    15. }
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

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

    Trích dẫn Nguyên bản được gửi bởi azurelonely Xem bài viết
    Có lẽ tớ lẫn lộn giữa S= 1+ 1.2 + 1.2.3+...+1.2.3..n.

    Đọc mà không hiểu ng ta muốn nói gì, lời nói thì lại chói tai...có lẽ có ng con tệ hơn cả tớ về đạo đức
    Tớ chưa nhận xét gì về đạo đức của cậu
    Cũng chưa nhận xét gì về bài làm của cậu, hay trình độ của cậu.
    Ý của tớ chỉ nói là khi sửa thuật toán thì không gọi là sửa! Mà là viết mới.
    Nếu cậu không gọi đấy là "sửa" thì có phải tốt hơn không! Vì đơn giản là bài cậu "sửa" xong chẳng giống bài gốc chút nào nữa. Cứ đưa ra cách làm của cậu thôi, đừng "sửa" bài của người khác.

    Mà tớ nói chói tai đấy, nhưng tớ chưa nhận xét gì về đạo đức của người khác đâu nhé Chói tai hay không là do cảm nhận của từng người, còn chửi bới hay chê bai đạo đức người khác là 1 sự việc khác đó nhé!

  10. #10
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    bài này thực ra là tính tổng các giai thừa <= n: sum = 1! + 2! + ... + n!
    C Code:
    1. long tong(int n)
    2. {
    3.     int sum = 0, gt =1;
    4.     for(int i = 1; i<=n; i++)
    5.     {
    6.         gt* = i;
    7.         sum+ = gt;
    8.     }
    9.     return sum;
    10. }
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

Tags của đề tài này

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