//这程序是实现多个距阵相乘的次数最少 using System;
namespace ConsoleMinMaxtic { class Class1 { public static int min(int[] r,int n,ref int b) {int j=0,i=0,k=0,d=0; int [,]c=new int [n,n]; for(i=0;i<n;i++) c[i,i]=0; for(d=1;d<n;d++) for( i=0;i<n-d;i++) {j=i+d; c[i,j]=1000000; for(k=i+1;k<=j;k++) { if(c[i,j]>(c[i,k-1]+c[k,j]+r[i]*r[k]*r[j+1])) c[i,j]=c[i,k-1]+c[k,j]+r[i]*r[k]*r[j+1]; } b=k-1; } return c[0,n-1];
} [STAThread] static void Main(string[] args) { int n=0; int i=0,b=0; int m=0;//记最小的次数 int[] r=new int [10]; Console.WriteLine("输入矩阵的个数N:",n); n=Int32.Parse(Console.ReadLine()); Console.WriteLine("输入n个矩阵行,最后一个数为最后一矩阵的列"); for(i=0;i<=n;i++) { Console.Write("r("+i+")="); r[i]=Int32.Parse (Console.ReadLine ());
} m=min(r,n,ref b);//b Console.WriteLine ("最小的次数:{0}"+"划分地点:{1}",m,b); Console.ReadLine(); // // TOD 在此处添加代码以启动应用程序 // } } } //希望大家评价一下 给个程序编写的意见,谢谢