您的位置:首页 > 其它

逻辑推断

2016-05-12 20:55 260 查看
void f(int *a,int cur,int n)
{
if(cur==n)
{
int ok=0;
if((a[0]&&a[1])||!a[0]) ok++;
if(!(a[2]||a[3])||a[2]) ok++;
if(a[0]+a[2]<=1) ok++;
if(a[1]+a[3]==1) ok++;
if(a[3]+a[4]+a[5]+a[6]+a[7]>=2) ok++;
if((a[2]&&a[6])||(!(a[2]||a[6]))) ok++;
if(a[2]+a[4]+a[6]+a[8]<=2) ok++;
if((a[4]&&a[5]&&a[6])||!a[4]) ok++;
if((a[5]&&(!(a[6]||a[7])))||(!a[5])) ok++;
if(a[8]+a[9]>0||a[7]) ok++;
if(ok==10)
{
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
}
return ;
}
for(int i=0;i<2;i++){
a[cur]=i;
f(a,cur+1,n);
}
}
int main()
{
int a[100];
f(a,0,10);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: