1. 程式人生 > >整數劃分問題(續)(非遞迴法)

整數劃分問題(續)(非遞迴法)

上一篇討論的是整數劃分問題遞迴方法,下面來討論下非遞迴方法:

一般情況下,遇到遞迴問題,若能直接求得遞推式,則可以很容易用陣列模擬來實現遞迴,根據已經得出的遞迴關係,可以設定一個二維陣列S[][]來儲存資料:

for(i=1;i<=n;i++)
{  
   S[i][1]=1;
      S[1][i]=1;
}
for(i=2;i<=n;i++)
{
   for(j=2;j<=m;j++)
   {
     i f(i==j)
           S[i][j]=1+S[i][i-1];
       else if(i<j)
           S[i][j]=S[i][i];
       else
           S[i][j]=S[i-j][j]+S[i][j-1];
   }
}