九日哥比较喜欢做一些逻辑推理题,因为觉得自己智商碉堡୧(๑•̀⌄•́๑)૭
有一天看到网上一道比较好玩的逻辑推理
1.第一个答案是b的问题是哪一个?
(a)2;(b) 3;(c)4;(d)5;(e)6
2、唯一的连续两个具有相同答案的问题是:
(a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;
3、本问题答案和哪一个问题的答案相同?
(a)1;(b)2;(c)4;(d)7;(e)6
4、答案是a的问题的个数是:
(a)0;(b)1;(c)2;(d)3;(e)4
5、本问题答案和哪一个问题的答案相同?
(a)10;(b)9;(c)8;(d)7;(e)6
6、答案是a的问题的个数和答案是什么的问题的个数相同?
(a)b;(b)c;(c)d;(d)e;(e)以上都不是
7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
(a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)
8、答案是元音字母的问题的个数是:
(a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)
9、答案是辅音字母的问题的个数是:
(a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数
10、本问题的答案是:
(a)a;(b)b;(c)c;(d)d;(e)e。
看上去是不是一脸懵比?23333333
其实题目是有一些道理可讲的,比如说第一题,b选项很自然就排除了,第四题,a就排除了,比如说第10题,他的选择很自由,所以是根据前面一些要求而选择的……
我相信如果我们认真思考这道题,一定会排除好多情况,最后联立计算出答案。
当然,我们也可以写10个循环暴力一波23333
#include<stdio.h>
#include<stdlib.h>
/*
1.第一个答案是b的问题是哪一个?
(a)2;(b) 3;(c)4;(d)5;(e)6
2、唯一的连续两个具有相同答案的问题是:
(a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;
3、本问题答案和哪一个问题的答案相同?
(a)1;(b)2;(c)4;(d)7;(e)6
4、答案是a的问题的个数是:
(a)0;(b)1;(c)2;(d)3;(e)4
5、本问题答案和哪一个问题的答案相同?
(a)10;(b)9;(c)8;(d)7;(e)6
6、答案是a的问题的个数和答案是什么的问题的个数相同?
(a)b;(b)c;(c)d;(d)e;(e)以上都不是
7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
(a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)
8、答案是元音字母的问题的个数是:
(a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)
9、答案是辅音字母的问题的个数是:
(a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数
10、本问题的答案是:
(a)a;(b)b;(c)c;(d)d;(e)e。
*/
int i[11];
int QA[11];
bool trueans()
{
int j;
//Q1
for(j=1;j<=10;j++)
{
if(i[j]==2)
{
if(i[1]+1!=j)
QA[1]=0;
else
QA[1]=1;
break;
}
}
//Q2
int Q2_sum=0;
int Q2_ans;
for(j=1;j<10;j++)
{
if(i[j]==i[j+1])
{
Q2_sum++;
Q2_ans=j-1;
}
}
if(Q2_sum==1)
{
if(Q2_ans!=i[2])
QA[2]=0;
else
QA[2]=1;
}
else
{
QA[2]=0;
}
//Q3
int Q3_ans;
if(i[3]==1) Q3_ans=1;
if(i[3]==2) Q3_ans=2;
if(i[3]==3) Q3_ans=4;
if(i[3]==4) Q3_ans=7;
if(i[3]==5) Q3_ans=6;
if(i[Q3_ans]!=i[3])
QA[3]=0;
else
QA[3]=1;
//Q4
int Q4_sum=0;
for(j=1;j<=10;j++)
{
if(i[j]==1)
Q4_sum++;
}
if(Q4_sum+1!=i[4])
QA[4]=0;
else
QA[4]=1;
//Q5
int Q5_ans;
if(i[5]==1) Q5_ans=10;
if(i[5]==2) Q5_ans=9;
if(i[5]==3) Q5_ans=8;
if(i[5]==4) Q5_ans=7;
if(i[5]==5) Q5_ans=6;
if(i[Q5_ans]!=i[5])
QA[5]=0;
else
QA[5]=1;
//Q6
int Q6_1_sum=0;
int Q6_2_sum=0;
int Q6_3_sum=0;
int Q6_4_sum=0;
int Q6_5_sum=0;
int Q6_ans;
for(j=1;j<=10;j++)
{
if(i[j]==1)
Q6_1_sum++;
if(i[j]==2)
Q6_2_sum++;
if(i[j]==3)
Q6_3_sum++;
if(i[j]==4)
Q6_4_sum++;
if(i[j]==5)
Q6_5_sum++;
}
QA[6]=1;
if(i[6]==1){ if(Q6_1_sum!=Q6_2_sum) QA[6]=0;}
if(i[6]==2){ if(Q6_1_sum!=Q6_3_sum) QA[6]=0;}
if(i[6]==3){ if(Q6_1_sum!=Q6_4_sum) QA[6]=0;}
if(i[6]==4){ if(Q6_1_sum!=Q6_5_sum) QA[6]=0;}
if(i[6]==5){ if(Q6_1_sum==Q6_2_sum||Q6_1_sum==Q6_3_sum||Q6_1_sum==Q6_4_sum||Q6_1_sum==Q6_5_sum) QA[6]=0;}
//Q7
int Q7_ans;
if(i[7]==1)Q7_ans=4;
if(i[7]==2)Q7_ans=3;
if(i[7]==3)Q7_ans=2;
if(i[7]==4)Q7_ans=1;
if(i[7]==5)Q7_ans=0;
if(abs(i[7]-i[8])!=Q7_ans)
QA[7]=0;
else
QA[7]=1;
//Q8
int Q8_sum=0;
for(j=1;j<=10;j++)
{
if(i[j]==1||i[j]==5)
Q8_sum++;
}
if(Q8_sum-1!=i[8])
QA[8]=0;
else
QA[8]=1;
//Q9
int Q9_sum=0;
int Q9_ans;
for(j=1;j<=10;j++)
{
if(i[j]==2||i[j]==3||i[j]==4)
Q9_sum++;
}
QA[9]=1;
if(Q9_sum==0){if(i[9]!=5) QA[9]=0;}
if(Q9_sum==1){if(i[9]!=2||i[9]!=3||i[9]!=4) QA[9]=0;}
if(Q9_sum==2){if(i[9]!=1||i[9]!=2) QA[9]=0;}
if(Q9_sum==3){if(i[9]!=1) QA[9]=0;}
if(Q9_sum==4){if(i[9]!=3) QA[9]=0;}
if(Q9_sum==5){if(i[9]!=1||i[9]!=5) QA[9]=0;}
if(Q9_sum==6){if(i[9]!=2) QA[9]=0;}
if(Q9_sum==7){if(i[9]!=1) QA[9]=0;}
if(Q9_sum==8){if(i[9]!=4) QA[9]=0;}
if(Q9_sum==9){if(i[9]!=3) QA[9]=0;}
if(Q9_sum==10){if(i[9]!=5) QA[9]=0;}
//Q10
QA[10]=1;
int o_sum=0;
for(int lk=1;lk<=10;lk++)
{
o_sum+=QA[lk];
}
if(o_sum>9)
{
return true;
}
else
{
return false;
}
}
int main()
{
for(i[1]=1;i[1]<=5;i[1]++)
for(i[2]=1;i[2]<=5;i[2]++)
for(i[3]=1;i[3]<=5;i[3]++)
for(i[4]=1;i[4]<=5;i[4]++)
for(i[5]=1;i[5]<=5;i[5]++)
for(i[6]=1;i[6]<=5;i[6]++)
for(i[7]=1;i[7]<=5;i[7]++)
for(i[8]=1;i[8]<=5;i[8]++)
for(i[9]=1;i[9]<=5;i[9]++)
for(i[10]=1;i[10]<=5;i[10]++)
{
if(trueans())
{
for(int k=1;k<=10;k++)
printf("%c~",i[k]+'A'-1);
printf("\n");
}
}
system("pause");
}