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

Đề tài: Giúp về thuật toán giai thừa

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    10

    Mặc định Giúp về thuật toán giai thừa

    Hum nọ mình thi giữa kỳ, bốc được đề bài là:
    Dùng hàm và con trỏ viết chương trình sau:
    1. Nhập vào 1 số n từ bàn phím.
    2. Tính n!
    3. Dựa vào hàm n! tính tổng sau: s=1*1! + 2*2! + ...+n*n!
    Hai phần đầu mình code 15' xong nhưng phần thứ ba thì làm ra sai kết quả dù chương trình ko báo lỗi, thế là ngậm ngùi ra về với kết quả sai ở phần ba ( mà mình nghĩ mãi cái thuật toán của mình ở phần ba có gì sai nhỉ???).
    Đây là code của mình, mọi người sửa giúp nhá:
    Code:
    #include <stdio.h>
    void nhap_n (int *n);
    int tinh_giai_thua (int n);
    int tinh_tong (int n);
    int  main (void)
    {
    	int n;
    	int sum,gth;
    	nhap_n (&n);
    	gth=tinh_giai_thua (n);
    	printf("Gia tri n! la: %d\n",gth);
    	sum=tinh_tong (n);
    	printf("Tong la: %d\n",sum);
    	return 0;
    }
    void nhap_n (int *n)
    {
    	int k;
    	printf("Nhap vao so n:\n");
    	scanf("%d",&k);
    	*n=k;
    }
    int tinh_giai_thua (int n)
    {
    	int gt,i;
    	gt=1;
    	for(i=1;i<=n;i++)
    	gt=gt*i;
    	return gt;
    }
    int tinh_tong (int n)
    {
    int s,giaithua,i;
    	s=0;
    	giaithua=tinh_giai_thua (n);
    	for(i=1;i<=n;i++)
    	s=s+giaithua*i;
    	return s;
    }
    Em yêu anh không hề toan tính
    Tình yêu mình vô đối phải không anh!

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    46

    C Code:
    1. int tinh_tong (int n)
    2. {
    3. int s,giaithua,i;
    4.     s=0;
    5.    
    6.     for(i=1;i<=n;i++)
    7.     {
    8.         giaithua=tinh_giai_thua (i);   
    9.         s=s+giaithua*i;
    10.     }
    11.     return s;
    12.  
    13. }

    sửa lai cho bạn nè
    mù english+ngu thuật toán+lười--->làm sao trở thành kỹ sư phần mềm

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    10

    Huhu...mẹ ơi !!!!!!!!!! Một điểm 10 trôi qua thật tiếc nuối :((.......
    Cảm ơn abetterday nhá, mình biết tại sao mình sai ùi.....hức....hức......
    Em yêu anh không hề toan tính
    Tình yêu mình vô đối phải không anh!

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    126

    một cách tính giai thưa bằng đệ quy
    Code:
    int giaithua(int i)
    {
         if(i==0)
                return 1;
         return i*giaithua(i-1);
    }

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

  1. giúp sửa lỗi giai hpt bac 2
    Gửi bởi singina3 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 23-12-2012, 11:22 PM
  2. Bài tập C giai giúp mình bài tap này
    Gửi bởi le_duy123 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 12-10-2012, 07:33 PM
  3. Bài tập C pro nào giúp em hướng giai bài này với
    Gửi bởi vthang71 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 05-08-2012, 10:48 AM
  4. Giải thuật tính tổ hợp C(n, k) ko dùng đến hàm giai thừa
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 22
    Bài viết cuối: 08-01-2011, 02:44 AM
  5. sắp xêp danh sách tăng dần theo giai thuật vun đống........
    Gửi bởi ngocnam_it trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 16-10-2008, 09:06 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