Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119369
  • 博文数量: 41
  • 博客积分: 1695
  • 博客等级: 上尉
  • 技术积分: 430
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-21 22:50
文章分类

全部博文(41)

文章存档

2010年(1)

2007年(23)

2006年(17)

我的朋友

分类: C/C++

2006-12-22 14:41:02

//06.12.22
//Author:Guo R.H
//    USTC
//找出一个数组中若干个数相乘等于另外一个数的组合
#include
#include
#define N 10
int a[N] = {2,3,5,7,8,9,12,14,15,30};
void main()

 unsigned int t=0;
 int b[N],s,i,j;
 for(t=0;t<(unsigned int)pow(2,N);t++)
 {
  s = 1;
  for(i=0;i   b[i] = t>>i & 1;
  for(i=0; i   if(b[i])
   s *= a[N-1-i];
  for(j=0;j  {
   if(!b[j] && s == a[N-1-j])
   {
    for(i=0; i    {
     if(b[i] == 1)
      printf("%d*",a[N-i-1]);
    }
    printf("\10=%d\n",a[N-1-j]);
   }
  }
 }
}
阅读(1111) | 评论(0) | 转发(0) |
0

上一篇:递归求最大值

下一篇:队列创建和操作

给主人留下些什么吧!~~