C语言求组合数的程序

C语言求组合数的程序,第1张

这胡慧碧是碧橘由于阶乘很大。在计算的中间过程,int类型溢出了。 可以裤举把 int xjc = 1, yjc = 1,zjc = 1 改为 double xjc = 1, yjc = 1,zjc = 1

这是由于阶胡慧碧裤举乘数很大。在计算碧橘的中间过程,int类型溢出了。

可以把

int xjc = 1, yjc = 1,zjc = 1

改为

double xjc = 1, yjc = 1,zjc = 1

你用的卖仔差是递规,爆栈了。

#include<中皮stdio.h>

unsigned int C(unsigned int n,unsigned int r)

int main()

{

unsigned int n,r,i

for(i=0scanf("%d%d",&n,&r)!=EOFi++)

{

if(n==0&&r==0)

{

break

}

if(n<r)

{printf("error!\n"戚镇)}

else

printf("%d\n",C(n,r))

}

return 0

}

unsigned int C(unsigned int n,unsigned int r)

{

unsigned int i,ans[100]

if(r==0)return 1

if(r==1)return n

ans[0]=1,ans[1]=n

for(i=2i<=ri++)

{

ans[i]=ans[i-1]*(n-i+1)/i

}

return ans[r]

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12241932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存