谁能帮我写一个求组合的函数?

来源:百度知道 编辑:UC知道 时间:2024/09/26 13:42:05
大家都知道那个公式,但是我这里有个题要算很大数的,int不行了
怎么办呢?
(N<=67)

/*通过gcc编译*/
#include <stdio.h>
#include <mem.h>
#define MAXL 68

typedef struct
{
short number[MAXL<3?1:MAXL/3];
int length;
} BigNumber;

BigNumber C[MAXL][MAXL];

void ADD(const BigNumber * a,const BigNumber * b,BigNumber * c)
{
int i,aa,bb,cc=0;
for(i=0;i<a->length||i<b->length||cc!=0;++i) {
aa=i<a->length?a->number[i]:0;
bb=i<b->length?b->number[i]:0;
cc+=aa+bb;
c->number[i]=cc%10;
cc/=10;
}
c->length=i;
}

void init(BigNumber * b,int a)
{
int i;
for(i=0;a;++i) {
b->number[i]=a%10;
a/=10;
}
b->length=i;
}

void print(const BigNumber * a)
{
int i=(a->length==0)?0:a->length-1;
for(;i>=0;--i)
printf("%d",a->number[i]);