Python 编程题
发布网友
发布时间:2022-04-23 13:32
我来回答
共1个回答
热心网友
时间:2023-10-15 20:17
枚举内容就是每个人犯或不犯两种状态。用int[6]就足够。
递归形式(int[] 犯案状态,int 递归层号)
{
if(递归层号==6)
{if(认定判定(犯案状态)){找到结果;}
return;
}
for(int i=0;i<2;i++)
{
犯案状态[i]=i;
递归形式(犯案状态,递归层号+1);
}
}
然后是判定
bool 认定判定(int[] 状态)
{
if(状态[0]+状态[1]==0)return false;/*AB至少有一个*/
if(状态[0]+状态[3]==2)return false;//A、D不可能是同案犯;
if(状态[0]+状态[4]+状态[3]<2)return false;//A、E、F三人中至少有2人
if(状态[1]+状态[2]!=1)return false;//B、C或同时作案,或均与本案无关;
if(状态[3]==0&&状态[4]==1)return false;//如D没有参与作案,E也不
return true;
}
热心网友
时间:2023-10-15 20:17
枚举内容就是每个人犯或不犯两种状态。用int[6]就足够。
递归形式(int[] 犯案状态,int 递归层号)
{
if(递归层号==6)
{if(认定判定(犯案状态)){找到结果;}
return;
}
for(int i=0;i<2;i++)
{
犯案状态[i]=i;
递归形式(犯案状态,递归层号+1);
}
}
然后是判定
bool 认定判定(int[] 状态)
{
if(状态[0]+状态[1]==0)return false;/*AB至少有一个*/
if(状态[0]+状态[3]==2)return false;//A、D不可能是同案犯;
if(状态[0]+状态[4]+状态[3]<2)return false;//A、E、F三人中至少有2人
if(状态[1]+状态[2]!=1)return false;//B、C或同时作案,或均与本案无关;
if(状态[3]==0&&状态[4]==1)return false;//如D没有参与作案,E也不
return true;
}