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

  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
相关推荐
懒惰才能让科技进步10 分钟前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
Ni-Guvara24 分钟前
函数对象笔记
c++·算法
泉崎1 小时前
11.7比赛总结
数据结构·算法
你好helloworld1 小时前
滑动窗口最大值
数据结构·算法·leetcode
AI街潜水的八角1 小时前
基于C++的决策树C4.5机器学习算法(不调包)
c++·算法·决策树·机器学习
白榆maple2 小时前
(蓝桥杯C/C++)——基础算法(下)
算法
JSU_曾是此间年少2 小时前
数据结构——线性表与链表
数据结构·c++·算法
此生只爱蛋3 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
咕咕吖3 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
九圣残炎4 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode