以下の式に基づいて、CでPascal Triangleソリューションを試しています:
上記の式に基づいて以下のコードを書きました。
#include <stdio.h>
#include <stdlib.h>
int pascalTriangle(int row, int col);
int main()
{
int row, col;
printf("Enter the row [0 to n]: ");
scanf("%i", &row);
printf("Enter the column [0 to m]: ");
scanf("%i", &col);
if(col > row) {
printf("Error: column can be less than or equal to row\n");
exit(1);
}
printf("Value = %i\n", pascalTriangle(row, col));
return 0;
}
int pascalTriangle(int row, int col)
{
int value[100];
value[0]=1;
int i=1;
if(row==0 || row==col || col==0) {
return value[0];
} else {
row=row+1;
while(i<=col) {
printf("i = %i\trow = %i\tcol = %i\n", i, row, col);
value[i]='\0';
value[i]=(value[i-1]) * ((row-i)/i);
printf("value[%i] = %i\tvalue[%i] = %i\n", i-1, value[i-1], i, value[i]);
++i;
}
return value[i-1];
}
}
ここでは、ある程度適切な O/P を与えています。しかし、多くの I/P で間違った答えが見つかりました。紙の上ではロジックが予想される O/P を与えているため、論理エラーを見つけることができません。例: - 行 = 4 & 列 = 2 を指定すると、O/P は 6 になるはずですが、O/P として 4 を取得します。
助けてください!!