我正在尝试 C 中的帕斯卡三角解决方案,基于以下公式:
我根据上面的公式编写了以下代码:
#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。示例:- 我给 row=4 & col=2,O/P 应该是 6,但得到 4 作为 O/P。
请帮忙!!