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

Đề tài: Chương trình tinh 1000! Mong được giúp đỡ

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

    Mặc định Chương trình tinh 1000! Mong được giúp đỡ

    bài nay khó quá.
    anh em viết dùm.
    thank niều nha!

  2. #2
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Em xem code trước đi, nếu hiểu thì thôi, có gì thắc mắc thì nêu câu hỏi anh sẽ giải thích.
    Chương trình đấy nó có thể tính giai thừa của các số bé hơn 50 000 đấy, em chỉ cần đổi
    1000 thành 50 000 ở trong arr[1000] và #define FACTOR là ok
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. unsigned short array[1000] = {1};
    4. unsigned int len= 1;
    5.  
    6. #define FACTOR  1000
    7.  
    8. int main()
    9. {
    10.     // TODO: Place code here.
    11.     clrscr();
    12.     unsigned int i;
    13.     unsigned long l;
    14.     unsigned long cn;
    15.  
    16.     cn= 0;
    17.     for(l= 1; l<=FACTOR; l++)
    18.     {
    19.         for(i= 0; i<len || cn; i++)
    20.         {
    21.             cn+= array[i]*l;
    22.             array[i]= (unsigned short)(cn%10000);
    23.             cn/= 10000;
    24.         }
    25.         len= i;
    26.     }
    27.  
    28.     printf("%d", array[len-1]);
    29.     for(i= len-1; i--;)
    30.     {
    31.         printf("%04d", array[i]);
    32.     }
    33.  
    34.     printf("\n");
    35.    
    36.     return 0;
    37. }
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    Tứ xứ trên đất sài thành
    Bài viết
    60

    cho em hỏi short khác int chổ nào vậy

  4. #4
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Mặc định Tính giai thừa của số lớn

    Code:
    unsigned char ³  8 bits ³                 0 to 255
    char          ³  8 bits ³              -128 to 127
    enum          ³ 16 bits ³           -32,768 to 32,767
    unsigned int  ³ 16 bits ³                 0 to 65,535
    short int     ³ 16 bits ³           -32,768 to 32,767
    int           ³ 16 bits ³           -32,768 to 32,767
    unsigned long ³ 32 bits ³                 0 to 4,294,967,295
    long          ³ 32 bits ³    -2,147,483,648 to 2,147,483,647
    float         ³ 32 bits ³   3.4 * (10**-38) to 3.4 * (10**+38)
    double        ³ 64 bits ³  1.7 * (10**-308) to 1.7 * (10**+308)
    long double   ³ 80 bits ³ 3.4 * (10**-4932) to 1.1 * (10**+4932)
    Trong Borland C thì không khác nhau, đều 16 bits
    Đã được chỉnh sửa lần cuối bởi lienthang : 25-03-2009 lúc 02:09 AM.
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  5. #5
    Ngày gia nhập
    03 2009
    Nơi ở
    Tứ xứ trên đất sài thành
    Bài viết
    60

    vậy short và int có gì khác nhau đâu.
    thế người ta tách thành hai kiễu dữ liệu khác nhau để để làm gì??? khó hiểu quá mong các anh chỉ giùm

    Càng Học Càng Ngu!!!Kiến thức thì vô tận con người thì vô biên thời gian thì vô đối????...

  6. #6
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Mặc định Chương trình tinh 1000! Mong được giúp đỡ

    Đấy chỉ là trong borland thôi, các compiler mới bây giờ quy định kích thước của int là 4 bytes, của short là 2 bytes
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  7. #7
    Ngày gia nhập
    03 2009
    Nơi ở
    Tứ xứ trên đất sài thành
    Bài viết
    60

    Trích dẫn Nguyên bản được gửi bởi lienthang Xem bài viết
    Em xem code trước đi, nếu hiểu thì thôi, có gì thắc mắc thì nêu câu hỏi anh sẽ giải thích.
    Chương trình đấy nó có thể tính giai thừa của các số bé hơn 50 000 đấy, em chỉ cần đổi
    1000 thành 50 000 ở trong arr[1000] và #define FACTOR là ok
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. unsigned short array[1000] = {1};
    4. unsigned int len= 1;
    5.  
    6. #define FACTOR  1000
    7.  
    8. int main()
    9. {
    10.     // TODO: Place code here.
    11.     clrscr();
    12.     unsigned int i;
    13.     unsigned long l;
    14.     unsigned long cn;
    15.  
    16.     cn= 0;
    17.     for(l= 1; l<=FACTOR; l++)
    18.     {
    19.         for(i= 0; i<len || cn; i++)
    20.         {
    21.             cn+= array[i]*l;
    22.             array[i]= (unsigned short)(cn%10000);
    23.             cn/= 10000;
    24.         }
    25.         len= i;
    26.     }
    27.  
    28.     printf("%d", array[len-1]);
    29.     for(i= len-1; i--;)
    30.     {
    31.         printf("%04d", array[i]);
    32.     }
    33.  
    34.     printf("\n");
    35.    
    36.     return 0;
    37. }
    anh giải thích giúp em code này đi?? đọc mấy lần mà không hiểu thuật toán ?help me????

    Càng Học Càng Ngu!!!Kiến thức thì vô tận con người thì vô biên thời gian thì vô đối????...

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

  1. Dây chuyền lọc nước tinh khiết RO 1000 Lít/giờ 2 cấp
    Gửi bởi nuoclocmt trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 10-04-2013, 09:18 AM
  2. Tạo 1000 số ngẫu nhiên gây đơ máy, mong chỉ giáo!
    Gửi bởi LeeShin456 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 01-03-2011, 05:12 PM
  3. Một số khái niệm chưa hiểu, mong mọi người giúp đỡ
    Gửi bởi tparepus trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 20-05-2009, 01:56 PM
  4. Bài toán đường đi của vua mong giúp đỡ
    Gửi bởi possidon 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: 16-04-2009, 10:07 AM

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