分享一个逻辑题_一眼望去无法下手

  1. 这道题的答案是

A.A B.B C.C D.D

  1. 第 5 题的答案是

A.C B.D C.A D.B

  1. 以下选项中哪一题的答案与其他三项不同

A. 第 3 题 B. 第 6 题 C. 第 2 题 D. 第 4 题

  1. 以下选项中哪两题的答案相同

A. 第 1,5 题 B. 第 2,7 题 C. 第 1,9 题 D. 第 6,10 题

  1. 以下选项中哪一题的答案与本题相同

A. 第 8 题 B. 第 4 题 C. 第 9 题 D. 第 7 题

  1. 以下选项中哪两题的答案与第 8 题相同

A. 第 2,4 题 B. 第 1,6 题 C. 第 3,10 题 D. 第 5,9 题

  1. 在此十道题中,被选择次数最少的选项字母为

A.C B.B C.A D.D

  1. 以下选项中哪一题的答案与第 1 题的答案在字母表中不相邻

A. 第 7 题 B. 第 5 题 C. 第 2 题 D. 第 10 题

  1. 已知 "第 1 题与第 6 题的答案相同" 与 "第 X 题与第 5 题的答案相同" 的真假性相反,那么 X 为

A. 第 6 题 B. 第 10 题 C. 第 2 题 D. 第 9 题

  1. 在此十道题中,ABCD 四个字母中出现的次数最多者与最少者的差为

A.3 B.2 C.4 D.1

接下来看代码:

cpp 复制代码
#include <stdio.h>
#include <math.h>
/*
 * 
 * 1.这道题的答案是
 * A.A B.B C.C D.D
 * 2.第5题的答案是
 * A.C B.D C.A D.B 
 * 3.以下选项中哪一题的答案与其他三项不同
 * A.第3题 B.第6题 C.第2题 D.第4题
 * 4.以下选项中哪两题的答案相同
 * A.第1,5题 B.第2,7题 C.第1,9题 D.第6,10题
 * 5.以下选项中哪一题的答案与本题相同
 * A.第8题 B.第4题 C.第9题 D.第7题
 * 6.以下选项中哪两题的答案与第8题相同
 * A.第2,4题 B.第1,6题 C.第3,10题 D.第5,9题
 * 7.在此十道题中,被选择次数最少的选项字母为
 * A.C B.B C.A D.D
 * 8.以下选项中哪一题的答案与第1题的答案在字母表中不相邻
 * A.第7题 B.第5题 C.第2题 D.第10题
 * 9.已知"第1题与第6题的答案相同"与"第X题与第5题的答案相同"的真假性相反,那么X为
 * A.第6题 B.第10题 C.第2题 D.第9题
 * 10.在此十道题中,ABCD四个字母中出现的次数最多者与最少者的差为
 * A.3 B.2 C.4 D.1
 * 
 * */

int MinTimes(int a[],int n)
{
	int i,abcd[4]={0};
	for(i=0;i<n;i++) abcd[a[1+i]]++;

	int min=abcd[0],j=0;
	for(i=0;i<4;i++)
	{
		if(min>abcd[i]) {min=abcd[i]; j=i;}
	}
	return j;
}

int main(int argc, char* argv[])
{ 
	int i;
	int a[11];
	for(a[1]=0;a[1]<4;a[1]++)
		for(a[2]=0;a[2]<4;a[2]++)
			for(a[3]=0;a[3]<4;a[3]++)
				for(a[4]=0;a[4]<4;a[4]++)
					for(a[5]=0;a[5]<4;a[5]++)
						for(a[6]=0;a[6]<4;a[6]++)
							for(a[7]=0;a[7]<4;a[7]++)
								for(a[8]=0;a[8]<4;a[8]++)
									for(a[9]=0;a[9]<4;a[9]++)
										for(a[10]=0;a[10]<4;a[10]++)
	{ 
		// 2.第5题的答案是 A.C B.D C.A D.B 
		if(a[2]==0 && a[5]==2 ) {;} 
		else if (a[2]==1 && a[5]==3){;} 
		else if (a[2]==2 && a[5]==0){;}
		else if (a[2]==3 && a[5]==1){;} 
		else continue;//下一个候选者

		//3.以下选项中哪一题的答案与其他三项不同 A.第3题 B.第6题 C.第2题 D.第4题
		if(a[3]==0 && a[3]!=a[6] && a[6]==a[2] && a[2]==a[4]) {;}
		else if(a[3]==1 && a[6]!=a[3] && a[3]==a[2] && a[2]==a[4]) {;}
		else if(a[3]==2 && a[2]!=a[6] && a[6]==a[3] && a[3]==a[4]) {;}
		else if(a[3]==3 && a[4]!=a[6] && a[6]==a[2] && a[2]==a[3] ){;}
		else continue;

		//4.以下选项中哪两题的答案相同 A.第1,5题 B.第2,7题 C.第1,9题 D.第6,10题
		if(a[4]==0 && a[1]==a[5]) {;}
		else if(a[4]==1 && a[2]==a[7]) {;}
		else if(a[4]==2 && a[1]==a[9]) {;}
		else if(a[4]==3 && a[6]==a[10]) {;}
		else continue;

		//5.以下选项中哪一题的答案与本题相同 A.第8题 B.第4题 C.第9题 D.第7题

		if(a[5]==0 && a[8]==a[5]) {;}
		else if(a[5]==1 && a[4]==a[5]) {;}
		else if(a[5]==2 && a[9]==a[5]) {;}
		else if(a[5]==3 && a[7]==a[5]) {;}
		else continue;

		//6.以下选项中哪两题的答案与第8题相同A.第2,4题 B.第1,6题 C.第3,10题 D.第5,9题
		if(a[6]==0 && a[8]==a[2] && a[8]==a[4] ) {;}
		else if(a[6]==1 && a[8]==a[1] && a[8]==a[6]) {;}
		else if(a[6]==2 && a[8]==a[3] && a[8]==a[10]) {;}
		else if(a[6]==3 && a[8]==a[5] && a[8]==a[9]) {;}
		else continue;

		//8.以下选项中哪一题的答案与第1题的答案在字母表中不相邻 A.第7题 B.第5题 C.第2题 D.第10题
		if(a[8]==0 && (abs(a[7]-a[1])!=1) && (abs(a[5]-a[1])==1) && (abs(a[2]-a[1])==1) && (abs(a[10]-a[1])==1) ) {;}
		else if(a[8]==1 && (abs(a[5]-a[1])!=1) && (abs(a[7]-a[1])==1) && (abs(a[2]-a[1])==1) && (abs(a[10]-a[1])==1) ) {;}
		else if(a[8]==2 && (abs(a[2]-a[1])!=1) && (abs(a[7]-a[1])==1) && (abs(a[5]-a[1])==1) && (abs(a[10]-a[1])==1) ) {;}
		else if(a[8]==3 && (abs(a[10]-a[1])!=1) && (abs(a[7]-a[1])==1) && (abs(a[5]-a[1])==1) && (abs(a[2]-a[1])==1) ) {;}
		else continue;

		//9.已知"第1题与第6题的答案相同"与"第X题与第5题的答案相同"的真假性相反,那么X为A.第6题 B.第10题 C.第2题 D.第9题
		if(a[9]==0 && ((a[1]==a[6]) ^ (a[6]==a[5] ) ) ) {;}
		else if(a[9]==1 && ((a[1]==a[6]) ^ (a[10]==a[5] ) ) ) {;}
		else if(a[9]==2 && ((a[1]==a[6]) ^ (a[2]==a[5] ) ) ) {;}
		else if(a[9]==3 && ((a[1]==a[6]) ^ (a[9]==a[5] ) ) ) {;}
		else continue;
		//7.在此十道题中,被选择次数最少的选项字母为 
		if(a[7]==0 && MinTimes(a,10)==2){;}
		else if(a[7]==1 && MinTimes(a,10)==1){;}
		else if(a[7]==2 && MinTimes(a,10)==0){;}
		else if(a[7]==3 && MinTimes(a,10)==3){;}
		else continue;

		//10.不处理


		printf("本试题的答案为:");

		for(i=1;i<=10;i++) printf(" %c",a[i]+'a');
	}
	printf("\n");
	return 0;
}

看输出结果:

cpp 复制代码
本试题的答案为: b c a c a c d a b a
相关推荐
罗西的思考25 分钟前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX1 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面2 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号2 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽2 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI2 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者4 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者4 小时前
【征程6】校准量化中HistogramObserver解析
算法
OuO-25 小时前
笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径
java·算法·矩阵
程序喵大人5 小时前
【C++进阶】STL算法与函数对象 - 04 find、count和any_of把查询写成意图
开发语言·c++·算法