回复:(冰的热度)[分享][经验][开源]排列组合算法
阶乘算法结果如果大于16位就存不下了啊,下面有一个算法:
#define max 200
void ditui(int a[],int k)
{
int m=a[0];
int *b=new int[m+1];
int i,j;
int r;
int carry;
for(i=1;i<=m;i++) b[i]=a[i];
for(j=1;j<k;j++)
{
for(carry=0,i=1;i<=m;i++)
{
r=(i<=a[0]?a[i]+b[i]:a[i])+carry;
a[i]=r%10;carry=r/10;
}
if(carry) a[++m]=carry;
}
delete [] b;
a[0]=m;
}