Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 20 kết quả

Đề tài: [C] Bài tập dùng đệ quy tính tổng các ước số của N

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Mặc định [C] Bài tập dùng đệ quy tính tổng các ước số của N

    Bài này kid kid đố neverland, giải xong òi, có điều chắc là không hay lắm thì phải, thôi thì cứ post code cho mọi người tối ưu giùm mình
    Code:
    #include<stdio.h>
    #include<conio.h>
    int TongUocSo(int n,int i)
    {
    	if (i==n) return 0;
    	else if (n%i==0)
    		{
    			return i+TongUocSo(n,i+1);
    		}
    		else
    		{
    			return TongUocSo(n,i+1);
    		}
    }
    void main()
    {
    	clrscr();
    	int n;
    	printf("n = ");
    	scanf("%d",&n);
    	printf("\nTong cac uoc so cua %d la %d",n,TongUocSo(n,1));
    	getch();
    }

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Ặc ai biểu neverland post câu í làm gì ? Chẳng qua là có U nhờ giải nhưng bận quá , sẵn tiện mới bị neverland đố bài toán khó quá nên đố lại thấy giải xong thì nhờ post lên cho anh em cùng tham khảo .

    Kiểu ni chắc phải xử riêng neverland mới được hèm .

  3. #3
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Ặc ai biểu neverland post câu í làm gì ? Chẳng qua là có U nhờ giải nhưng bận quá , sẵn tiện mới bị neverland đố bài toán khó quá nên đố lại thấy giải xong thì nhờ post lên cho anh em cùng tham khảo .

    Kiểu ni chắc phải xử riêng neverland mới được hèm .
    Tặng kid câu này :
    Thấy câu: "code dễ bất ghi" (code dễ quá không thèm ghi ra)
    Lập trình thế ấy mới ...phi lập trình"


    Bận việc nên không thèm làm, cấn cho neverland làm hử?
    Cho kid bài này: dùng đệ quy tính tổng các bội số của N trong khoảng từ N --> N*3 . Tương tự như bài trên á, giải dùm neverland nhé (làm hổng được mới nhờ kid làm đó) ^ ^

  4. #4
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Từ cái code trên của Danh, pete sửa đề bài đi 1 tẹo . Viết 1 chương trình đệ qui tính tổng và tích các ước số của n, từ 1 ước số i cho trước .
    Ví dụ : n = 64 , i = 32 : phép tính bắt đầu từ i = 32 -> i = n = 64 ;
    None!

  5. #5
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Hix,với đề bài pete cho thì neverland phải làm thành 2 hàm:
    - Tổng các ước số của n từ 1 số i cho trước: dùng hàm int TongUocSo(int n,int i) như ở trên á.
    Rồi trong thân hàm main(): cho nhập n và ước số cho trước của n. Sau đó printf("Tong cac so cua %d tu uoc so cho truoc la %d la %d",n,i,TongUocSo(n,i));
    - Tích các ước số cho trước của n từ 1 số i cho trước: tương tự dùng hàm int TichUocSo(int n,int i) thôi

    Không biết neverland có hiểu sai ý pete không nữa? Và pete có cách nào chỉ cần xây dựng duy nhất 1 hàm TongTichUocSo(...) không?

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định [C] Bài tập dùng đệ quy tính tổng các ước số của N

    Ặc không biết pete có ẩn í gì không chứ như thế thì dễ quá , bi giờ viết trong 1 hàm luôn thì cũng không khó , nhưng code lại dở ( vì đang chat hay vì mình dốt sẵn nhỉ ? ).

    kid viết lại thử thế này :

    int tongtich_uocso(int n,int i,char select[])
    {

    if(select=="tong")
    {
    if(i==n) return 0;
    if(n%i==0)
    return i+tongtich_uocso(n,i+1,"tong");
    else
    return tongtich_uocso(n,i+1,"tong");
    if(select=="tich")
    {
    if(i==n) return 1;
    if(n%i==0)
    return i*tongtich_uocso(n,i+1,"tong");
    else
    return tongtich_uocso(n,i+1,"tong");

    }
    Viết thì được nhưng vấn đề cho hay thì để tối nay suy nghĩ coi .

  7. #7
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Thực ra thì không có gì là phức tạp đâu . Nếu các cậu hiểu ý mình thì nhận ra ngay. Thử nghỉ xem nếu có trường hợp nào làm chương trình bị crash không ? Vượt quá bộ nhớ hoặc giới hạn cho phép : Đệ quy rất hay nhưng rất chi là tốn tài nguyên. Nếu làm tích liêu có trường hợp nào vượt quá giới hạn cho phép của int kô? . Trong forum pete để ý thấy mọi người viết code không bao giờ tính đến trường hợp chương trình có lỗi không theo ý muốn. Điều này nghĩa là : chương trình code ngắn gọn, hay, chạy tốt là chưa đủ và cần có xử lý các tình huống khác. Ý mình chỉ có vậy thôi !
    None!

  8. #8
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Đúng là thâm ý mà kidkid vừa mới viết bên kia , tích 2 số nguyên sẽ cho 1 số rất lớn , tuyệt pete phán câu này hay lắm :
    chương trình code ngắn gọn, hay, chạy tốt là chưa đủ và cần có xử lý các tình huống khác

  9. #9
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Hix ... có gì đâu. Biết sao thì phát biểu vậy chứ pete trình C gà lắm
    None!

  10. #10
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Hè hè ! Trong 4rum này mà Pete nhận mình gà thì lũ như kidkid đây đâu dám gọi là gà chứ !!!

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

  1. Upload file dùng Ajax mà ko dùng Method Post của Form như thế nào?
    Gửi bởi hieupxd2cntt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 14-09-2014, 10:23 PM
  2. Lập trình C++ trong visual studio có cách nào để dùng winform mà vẫn dùng cách viết trên c++ được ?
    Gửi bởi homgiaouoc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-10-2013, 12:50 PM
  3. Bài toán quản lí nhân viên dùng dùng danh sách liên kết trong C++. Mong mọi người góp ý!
    Gửi bởi rataki trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 22-11-2012, 11:26 PM
  4. Bài tập C++ Dùng strtok cắt chuỗi và lỗi khi dùng atof() chuyển char sang float
    Gửi bởi salomontong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-03-2012, 05:18 PM
  5. Tại sao dùng const trong trường hợp dùng biến tham chiếu
    Gửi bởi dinhdoong trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 04-02-2012, 10:45 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