⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2-2-3.c

📁 2005软件工程师考试下午编程题源代码
💻 C
字号:
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream.h>
#define MAXN 50

int gcd(int m,int n)
{
int temp;
if(n<m){
    temp=n;n=m;m=temp;
}
while(m!=0){
temp=n%m;
n=m;
m=temp;
}
return n;
}

void formal(int *a){  //function 1
int p;
       	for (p = 1; p < a[0] || a[p] >= 10; p++) {
          	if (p >= a[0])  a[p+1] = 0;
          	a[p+1] += a[p]/10;  a[p] = a[p] % 10;
       	}
       	if (p > a[0]) a[0] = p;
}

  void combine (int a,int b,int *c){//function 2  
int i, j, x, k;
       	int d[MAXN],u[MAXN];
       	for (k = 0, i = a; i >= a-b+1; i--) u[++k] = i;
       	u[0] = k;
       	for (i = 1; i <= b; i++) d[i] = i;  /*将整数 1 至 b顺序存于数组 d */
       	for (i = 1; i <= u[0]; i++)  /*从u的各元素中,去掉 d 中整数的所有因子*/
         	if (u[i] != 1)
           	for (j = 1; j <= b; j++)
             	if (d[j] != 1 )  {
              	 x = gcd(u[i], d[j]);  u[i] /= x;  d[j] /= x;
             	}
       	c[0]=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] = c[j]*u[i];
            		formal(c);  /*将存于c中的长整数规整*/
         		}
}
main()
{ int c[MAXN],i;
  combine(3,2,c);
  printf("Result:");
  for(i=c[0];i>0;i--)  
  printf("%d",c[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -