[说明] 函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能

题型:填空题

问题:

[说明]
函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出long整型的可表示范围,故采用数组方式存储,例如: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 MAXN 100
int gcd(int a, int b)//求两个整数a和b的最大公因子

if(a < b)
int c = a; a = b; b = c;

for(int i = b; i >= 2; i--)
if(______)return i;

return 1;

void format(int *a)//将长整型数纰归整

int i;
for(i =1; i > a[0] ‖ a[i] >= 10; i++)
if(i >= a[0]) ______;
a[i+1] += a[i]/10;
a[i] = a[i]%10;

if(i > a[0]) ______;

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 = i; i <= u[0]; i++) //从u各元素去掉d中整数的因子
for(j = i; j <= b; j++)
x = gcd(u[i], d[j]);//计算最大公约数
u[i] /= x;
d[j] /= x;


______; c[1] = 1;长整数C初始化
for(i = i; i <= u[0]; i++) //将u中各整数相乘,存于长整数C中
if(u[i] != 1)
for(j = i; j <= c[0]; j++)
e[j] =______;

format (c);//将长整数c归整


考点:计算机软件水平考试中级软件设计师(A)中级软件设计师下午试题
题型:填空题

若某种商品的需求为( )弹性,则价格与消费者支出呈反方向变动。

A.富有

B.单一

C.缺乏

D.完全

题型:填空题

中国民族资本主义经济的特点是民族资本主义经济和封建势力也有千丝万缕的联系、()在国民经济中所占比重小、民族资本所经营的工业,规模狭小,技术设备落后

题型:填空题

下面哪种类型硬盘单位容量最便宜(每美元GB)()

A.SSD硬盘

B.SAS硬盘

C.NL-SAS硬盘

D.FC硬盘

题型:填空题

真菌检查滤过紫外线灯下见亮绿色荧光的是:()

A.白癣

B.黄癣

C.圆癣

D.足癣

E.阴癣

题型:填空题

建立我国农村医疗保障的原则()

A、国家支持的原则

B、与城镇职工基本医疗相一致的原则

C、因地制宜的原则

D、保重大疾病的原则

E、循序渐进、协调一致的原则

更多题库