Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
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ông cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã đượ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ỉ.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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