سلام .
تابع minMul من همیشه صفر برمیگردونه میخواستم ببینم دلیلش چیه ؟
میشه واسم یه چکی بکنید ببینید درست کار میده ؟
با تشکر
private static int minmult(int n, int[] d)
{
int i, j, k, diagonal, temp;
int[,] M = new int[10, 10];
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
M[i, j] = 0;
for (diagonal = 0; diagonal <= n - 1; diagonal++)
for (i = 1; i <= n - diagonal; i++)
{
j = i + diagonal;
temp = k = i; M[i, j] = M[i, k] + M[k + 1, j] + d[i - 1] * d[k] * d[j];
for (k = i + 1; k < j; k++)
if ((M[i, k] + M[k + 1, j] + d[i - 1] * d[k] * d[j]) < M[i, j])
{
M[i, j] = M[i, k] + M[k + 1, j] + d[i - 1] * d[k] * d[j];
temp = k;
}
p[i, j] = temp;
}
return M[1, n];
}
private static void order(int i, int j)
{
int k;
if (i == j)
Console.Write("A" + i.ToString());
else
{
k = p[i, j];
Console.Write(" ( ");
order(i, k);
order(k + 1, j);
Console.Write(" ) ");
}
}
تابع main :
public static int[,] p = new int[10, 10];
static void Main(string[] args)
{
int i, j, n, result;
int[] d;
Console.WriteLine("Welcome, Please enter the number of Matrix (Max 10):");
n = Convert.ToInt32(Console.ReadLine());
d = new int[n];
for (i = 0; i < n; i++)
{
Console.WriteLine("The number of rows for Matrix : ");
d[i] = Convert.ToInt32(Console.ReadLine());
//Console.WriteLine("The number of columns for Matrix : ");
//d[i + 1] = Convert.ToInt32(Console.ReadLine());
}
result = minmult(n, d);
order(1, n);
Console.WriteLine("The number of multiplication is: " + result.ToString());
Console.Read();
}
با تشکر