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

  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
相关推荐
IT猿手1 小时前
基于强化学习 Q-learning 算法求解城市场景下无人机三维路径规划研究,提供完整MATLAB代码
神经网络·算法·matlab·人机交互·无人机·强化学习·无人机三维路径规划
万能程序员-传康Kk5 小时前
旅游推荐数据分析可视化系统算法
算法·数据分析·旅游
PXM的算法星球5 小时前
【并发编程基石】CAS无锁算法详解:原理、实现与应用场景
算法
ll7788115 小时前
C++学习之路,从0到精通的征途:继承
开发语言·数据结构·c++·学习·算法
烨然若神人~5 小时前
算法第十七天|654. 最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
算法
爱coding的橙子5 小时前
每日算法刷题Day2 5.10:leetcode数组1道题3种解法,用时40min
算法·leetcode
程序媛小盐6 小时前
贪心算法:最小生成树
算法·贪心算法·图论
Panesle6 小时前
分布式异步强化学习框架训练32B大模型:INTELLECT-2
人工智能·分布式·深度学习·算法·大模型
多多*6 小时前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
逐光沧海6 小时前
数据结构基础--蓝桥杯备考
数据结构·c++·算法·蓝桥杯