我試圖用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。例如: - 我給行= 4 & col = 2,O/P應該是6,但得到4作爲O/P。
請幫忙!!
此外,您編寫的公式是遞歸的,但您使用迭代來解決問題。你確定你正確地重寫了遞歸嗎? – 2013-02-15 15:53:42