有一组数,题口已列在数组中,问,他们中哪些数相加后能得到37520   aatree = 37520
    a11 = Array(768, 1024, 1280, 1600, 2624, 6336, 7904, 10240, 24448)

解决方案 »

  1.   

    有什么趣,两个for循环就搞定了吧
      

  2.   

    一次循环就行,一共9个数,
    for i=1;i<=2^9-1;i++

           sum =0;
           if (i&0x01)
              sum+=768;
           if (i&0x02)
              sum+=1024;
           ......... 
          if sum==reslut
              output
      

  3.   

    int _tmain(int argc, _TCHAR* argv[])
    {
    int a11[] = {768, 1024, 1280, 1600, 2624, 6336, 7904, 10240, 24448};
    int sum = 0;
    for( int i=1;i <=2^9-1;i++)
    {
    if ( i&0x01)
    {
    sum += 768;
    }
    if ( i&0x02)
    {
    sum += 1024;
    }
    if ( i&0x03)
    {
    sum += 1280;
    }
    if ( i&0x04)
    {
    sum += 1600;
    }
    if ( i&0x05)
    {
    sum += 2624;
    }
    if ( i&0x06)
    {
    sum += 6336;
    }
    if ( i&0x07)
    {
    sum += 7904;
    }
    if ( i&0x08)
    {
    sum += 10240;
    }
    if ( i&0x09)
    {
    sum += 24448;
    }
    if (sum == 37520)
    {
    cout<< sum <<endl;
    break;;
    }

    }
    system("pause");

    return 0;
    }是这样的  怎么无休止的运行?
      

  4.   

    i&0x0001
    i&0x0002
    i&0x0004
    i&0x0008
    按位判断