= =我怎么看怎么觉得LZ的问题是N个数里面K个数的组合......
我新手...只会穷举......
可以用6个for循环,逐位尝试,这个就不写了
也可以用递归做,这个代码贴下来,测试正常。
————————————————————————————
#include <iostream>
using namespace std;
void arrange( int );
int num[7] = { 0 }; //记录每位的结果
int main()
{
arrange( 1 );
return 0;
}
void arrange( int n )
{
int i , sum = 0;
if ( n == 7 ) //递归程序的出口,输出结果,并返回上一级
{
for ( i = 1 ; i <= 6 ; i ++ )
sum += num[i]; //如果有3个1 输出
if ( sum == 3 )
{
for ( i = 1 ; i <= 6 ; i ++ )
cout << num [i];
cout << endl;
}
return;
}
for ( i = 0 ; i < 2 ; i ++ ) //每一位都尝试0、1
{
num [n] = i;
arrange ( n + 1 );
}
}
温馨提示:内容为网友见解,仅供参考