Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. int Optimal(int **A, int *B, int n);
  5. int main()
  6. {
  7. int n, **A,*B,i,m,j,k;
  8. printf("n Enter the number of natrices to be multiplied :");
  9. scanf("%d",&n);
  10.  
  11. A =(int **)malloc((n+1)*sizeof(int *));
  12.  
  13. {
  14. for(i=0; i<=n; i++)
  15. { A[i] = (int *)malloc(n*sizeof(int));
  16. for( j=0; j<=n; j++)
  17. {
  18. A[i][j]=0;
  19. }
  20. }
  21.  
  22. }
  23. printf("n Array entered :n");
  24. for(i=1;i<=n;i++)
  25. {
  26. for(j=1; j<=n; j++)
  27. {
  28. printf("%d ", A[i][j]);
  29.  
  30. }
  31. printf("n");
  32. }
  33.  
  34. B =(int *)malloc((n+1)*sizeof(int));
  35. for(i=0;i<=n;i++)
  36. { printf("Input the Columns of Matrix %d and Rows of %d",i,i+1);
  37. scanf("%d",&m);
  38. B[i]=m;
  39. }
  40.  
  41. Optimal(A,B,n);
  42. printf("The Minimum Number of Calculations required is %d ",A[1][n]);
  43.  
  44.  
  45. return 0;
  46. }
  47.  
  48. int Optimal(int **A, int *B, int n)
  49. {
  50. int m=50000,j,i,k;
  51. for(i=1;i<=n;i++)
  52. {
  53. A[i+1][i]=B[i+1]*B[i]*B[i-1];
  54. }
  55. for(k=2;k<n;k++)
  56. {
  57.  
  58. for(i=k+1;i<=n;i++)
  59. {
  60.  
  61. for(j=1;j<k;j++)
  62. if(m<A[i+k][i+k-j]*A[i+k-j-1][i]+B[i+k]*B[i+k-j-1]*B[i])
  63. {
  64. m=A[i+k][i+k-j]*A[i+k-j-1][i]+B[i+k]*B[i+k-j-1]*B[i];
  65. }
  66. A[i+k][i]=m;
  67. }
  68. }
  69.  
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement