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

Đề tài: Chương trình N! rất lớn(N2000)

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

    Mặc định Chương trình N! rất lớn(N2000)

    Chào các bạn minh show hàng chương trình tính N! với N<2000 nó mới chỉ là V1 thôi
    C Code:
    1. // Mult_Big_Int.cpp : Defines the entry point for the console application.
    2. //
    3.  
    4. #include "stdafx.h"
    5. #include<stdio.h>
    6. #include<math.h>
    7. #include<conio.h>
    8. #include<string.h>
    9.  
    10. #define MAX 100000
    11.  
    12. int a[4],b[2*MAX];
    13. int n,leng=0,lengb=0;
    14. /*********************************************/
    15. void input();
    16. void Convert(int c[],int y);
    17. void Print();
    18. /*********************************************/
    19. void Print(){
    20. int i;
    21. int newline=0;
    22. FILE*f=fopen("KetQua.txt","w");
    23. for(i=0;i<=lengb;i++)
    24. {
    25.     newline++;
    26. printf("%d",b[lengb-i]);
    27. fprintf(f,"%d",b[lengb-i]);
    28. if(newline==75){
    29. fprintf(f,"\n");
    30. newline=0;
    31. }
    32. }
    33. }
    34. void input(){
    35.     printf("Chuong tring tinh n!\n");
    36.     printf("N=");scanf("%d",&n);
    37.    
    38. }
    39. /*********************************************/
    40. void Mang(int n){
    41.     leng=0;
    42.     while(n>0){
    43.     a[leng]=n%10;
    44.     n=n/10;
    45.     leng++;
    46.     }
    47.     leng--;
    48. }
    49.  
    50. /*********************************************/
    51. void Multi(int a[],int n,int b[],int m){
    52.  
    53. int i,j,k;
    54. int c[2*MAX];
    55.  
    56. for(k=0;k<=m+n;k++)
    57. c[k]=0;
    58. for(i=0;i<=n;i++)
    59. for(j=0;j<=m;j++)
    60. for(k=0;k<=m+n;k++)
    61. if(i+j==k)
    62. {
    63.     c[k]=c[k]+a[i]*b[j];
    64. }
    65. for(i=0;i<=m+n;i++)
    66. b[i]=c[i];
    67. Convert(b,m+n);
    68. }
    69. /*********************************************/
    70. void Convert(int c[],int m){
    71. int i,h;
    72.  
    73. for(i=0;i<m;i++)
    74. {
    75.     c[i+1]=c[i+1]+c[i]/10;
    76.     c[i]=c[i]%10;
    77. }
    78. h=m;
    79. if(c[m]>9)
    80. {
    81.     int x;
    82.     x=c[m];
    83. c[m]=x%10;
    84. c[m+1]=x/10;
    85. h=m+1;
    86. }
    87. lengb=h;
    88. }
    89. /*********************************************/
    90.  
    91. /*********************************************/
    92. void main()
    93. {
    94.    
    95.    
    96.     int i;
    97.     b[lengb]=1;
    98.     input();
    99.  
    100. for(i=2;i<=n;i++)
    101. {
    102.     Mang(i);
    103. Multi(a,leng,b,lengb);
    104. }
    105. Print();
    106.  
    107.     getch();
    108.    
    109. }
    Đã được chỉnh sửa lần cuối bởi nthung : 26-09-2008 lúc 04:05 PM.
    Time

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

    Ông bạn này hay post mỗi code thôi nhỉ.

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