1 条题解
-
0
暴力写7个for循环,因为后3个答案确定(如果不知道看自己反思一下)所以只需7个for循环,然后写几个if条件判断一下是否满足每个选项,以下代码仅供参考
#include <stdio.h> #include <stdlib.h> int main() { int a[11],pd,i1,i2,i3,i,zhishu; a[8]=a[9]=a[10]=3; { for(a[1]=1;a[1]<=3;a[1]++) for(a[2]=1;a[2]<=3;a[2]++) for(a[3]=1;a[3]<=3;a[3]++) for(a[4]=1;a[4]<=3;a[4]++) for(a[5]=1;a[5]<=3;a[5]++) for(a[6]=1;a[6]<=3;a[6]++) for(a[7]=1;a[7]<=3;a[7]++) // for(a[8]=1;a[8]<=3;a[8]++) { i1=0;i2=0;i3=3;pd=0;zhishu=0;//pd用来判断是否符合条件 for(i=1;i<=7;i++) { if (a[i]==1) i1++;//(统计每个选项出现次数) if (a[i]==2) i2++; if (a[i]==3) i3++; } if((i1==2)||(i1==3)||(i1==5)||(i1==7))zhishu++;//统计选项出现次数为素数的个数 if((i2==2)||(i2==3)||(i2==5)||(i2==7))zhishu++; if((i3==2)||(i3==3)||(i3==5)||(i3==7))zhishu++; if(a[1]!=zhishu)pd++;//问题1 if((a[2]+1)!=i2)pd++;//问题2 if(((i1-i3)!=(4-a[3]))&&((i3-i1)!=(4-a[3])))pd++;//问题3 if((a[5]==1)&&(a[2]!=a[3]))pd++;//问题5 if((a[5]==2)&&(a[4]!=a[5]))pd++; if((a[5]==3)&&(a[6]!=a[7]))pd++; if((a[6]==1)&&(i1!=2))pd++;//问题6 if((a[6]==2)&&(i2!=3))pd++; if((a[6]==3)&&(i1!=4))pd++; if (pd==0) { printf("***\n"); printf("%c",a[1]+64); printf("%c",a[2]+64); printf("%c",a[3]+64); printf("%c",a[4]+64); printf("%c ",a[5]+64);//五个五个隔开好判断 printf("%c",a[6]+64); printf("%c",a[7]+64); printf("%c",a[8]+64); printf("%c",a[9]+64); printf("%c",a[10]+64); printf(" %d %d %d \n",i1,i2,i3); printf("***\n");//分隔开每一组 } } } }
因为7问题和4问题比较难判断,所以这里不用写判断条件,默认满足,然后讲答案输出,自己手写一下看是否满足
- 1
信息
- ID
- 847
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 127
- 已通过
- 40
- 上传者