阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 [说明] 函数combine(a,b,c)是计算两个
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。
[说明]
函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10k-1+c[k-1]×10k-2+…+c[2]×10+c[1],利用c[0]存储长整数m的位数,即c[0]=k。数组的每个元素只存储长整数m的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于9,这是就应该调用format将其归整,使数组中的每个元素始终只存储长整数的一位数字。
整数a和b(a>b)的组合数为:,其中u1=a,u2]=a-1,…,ub=a-b+1,d1=1,d2=2,…,db=b。为了计算上述分式,先从u1,u2,…,ub中去掉d1×d2×…×db的因子,得到新的u1,u2,…,ub,然后再将它们相乘。
[函数]
define NAXN 100
int gcd(int a,int b)//求两个整数a和b的最大公因子
{
if(a<b){
intC=a;a=b;b=c;
}
for(inti=b;i>=2;i--){
if( (1) )return i;
}
return 1;
void format(int *a)//将长整数数组归整
{
int i;
for(i=1;i<a[0]||a[i]>=10;i++){
if(i>=a[0]) (2);
a[i+1]+=a[i]/10;
a[i]=a[i]%10;
}
if(i>a[0]) (3);
}
void combine(int a,int b,int *C)
{
int i,J,k,x;
int d[MAXN],u[MAXN];
k=0;
for(i=a;i>=a-b+1;i--)u[++k]=i;
u[0]=b;
for(i=1;i<=b;i++)d[i]=i;
for(i=1;i<=u[0];i++){//从u中各元素去掉d中整数的因子
for(j=1;j<=b;j++){
x=gcd(u[i],d[j]);//计算最大公约数
u[i]/=X;
d[j]/=x;
}
(4);C[1]=1;//长整数c初始化
for(i=1;i<=u[0];i++)(//将u中各整数相乘,存于长整数c中
if(u[i]!=1){
for(j=1;j<=c[0];j++){
C[j]=(5);
}
format(C);//将长整数c归整
}
}
}
(1)
a%i==0&&b%i-=0
初二数学,写出具体解答过程1、利用图形面积解释恒等式的正确性.已知正数a、b、c和m、n、l,满足 数学 2020-04-25 …
如何推导这个因式分解题!a^n-b^n=(a-b)[a^(n-1)+a^(n-2)b+……+b^( 数学 2020-05-16 …
除了我说的这些字,还有哪些3个字叠在一起的汉字?鱻xiān虫chóng皕bì赑bì众zhòng品p 语文 2020-05-17 …
已知△ABC中,a,b,c分别是角A.B.C所对的边,向量m→=(2sinB/2,√3/2).n→ 数学 2020-05-22 …
写汉字。bàn嘴kāi拭卧tàbàn倒和xié坍tākǎi书践tà 语文 2020-06-26 …
给加横线字注音或根据拼音写出相应的汉字:bīn临()shèn透()分mì()花卉()枯萎()梦mè 语文 2020-07-06 …
已知一个四位数M的千位数字是a,百位数字是b、十位数字是4、个位数字是c,另有一个三位数N的百位数字 数学 2020-11-06 …
多次项因式分解公式求以下公式:1.a^n-b^n=(其中n为正整数)2.a^n-b^n=(其中n为偶 数学 2020-12-14 …
选出下列加点字注音全部正确的一项(2分)A.斟酌zhēn召唤zhào拘泥nì红桧guìB.濒临bīn 语文 2020-12-23 …
用科学计数法表示0.0625(保留两位有效数字)是多少啊?保留第N位不是要看N+1位吗,是5并且后面 数学 2021-02-02 …