1. 程式人生 > >一個有趣推理題的答案

一個有趣推理題的答案

題目原文如下:

1.第一個答案是A的問題是哪一個?( )
A、1          B、2          C、3          D、4
2.唯一的連續兩個具有相同答案的問題是( )
A、5,6      B、6,7       C、7,8       D、8,9
3.本問題答案和哪一個問題的答案相同( )
A、4         B、9           C、8          D、2
4.答案是A的問題的個數是( )
A、5         B、4           C、3            D、2
5.本問題答案和哪一個問題的答案相同( )
A、1         B、2         C、3          D、4
6.答案選A的問題的個數和答案選什麼的問題的個數相同( )
A、無      B、C           C、C          D、D
7.按照字母順序,本題答案與下一題相差( )(A與B間,或B與A間均相差1)
A、3        B、2         C、1              D、0
8.本題中答案為母音的題數為( )
A、0        B、1          C、2          D、3
9.本題中答案為子音的題數( )
A、是合數     B、是質數       C、<5          D、是平方數
10.本題答案為( )
A、A          B、B        C、C            D、D



答案的唯一解如下:

A C B C A C D D B A


解題程式碼如下:

#include<stdio.h>
#include<math.h>
#define ABS(x,y) (x>y?x-y:y-x)
int Question01(void);
int Question02(void);
int Question03(void);
int Question04(void);
int Question05(void);
int Question06(void);
int Question07(void);
int Question08(void);
int Question09(void);
int Question10(void);

int InitAnswet(void);
int FindAnswet(void);
int UpdataAnswet(void);
int PrintAnswet(void);
typedef int(*Question)(void);
int answer[10];
Question question[10];
int main()
{
	InitAnswet();
	FindAnswet();
	//PrintAnswet();
	return 0;
}
int PrintAnswet(void)
{
	int i;
	for(i=0;i<10;i++)
	{
		printf("%c ",answer[i]);
	}
	printf("\n");
	return 1;
}
int InitAnswet(void)
{
	int i;
	for(i=0;i<10;i++)
	{
		answer[i]='A';
	}
	question[0]=Question01;
	question[1]=Question02;
	question[2]=Question03;
	question[3]=Question04;
	question[4]=Question05;
	question[5]=Question06;
	question[6]=Question07;
	question[7]=Question08;
	question[8]=Question09;
	question[9]=Question10;
	return 1;
}
//ACBCACDDBA
int FindAnswet(void)
{
	int i;
	do 
	{
		for(i=0;i<10;i++)
		{
			if(question[i]()!=1)
			{
				break;
			}
		}
		if(i==10)
		{
			PrintAnswet();
			//break;
		}
	} while (UpdataAnswet()==1);
	return 1;
}
int UpdataAnswet(void)
{
	int i;
	answer[9]+=1;
	for(i=9;i>=1;i--)
	{
		if(answer[i]>'D')
		{
			answer[i]='A';
			answer[i-1]+=1;
		}
	}
	if(answer[0]>'D')
	{
		return 0;
	}
	return 1;
}
int Question01(void)
{
	int i;
	for(i=0;i<10;i++)
	{
		if(answer[i]=='A')
		{
			break;
		}
	}
	if(i==answer[0]-'A')
	{
		return 1;
	}
	return 0;
}
int Question02(void)
{
	int i,j,idx,a;
	a=answer[1];
	for(i=0,j=0;i<9;i++)
	{
		if(answer[i]==answer[i+1])
		{
			j++;
			idx=i;
		}
	}
	if(j==1)
	{
		if(a=='A'&&idx==4)
		{
			return 1;
		}
		if(a=='B'&&idx==5)
		{
			return 1;
		}
		if(a=='C'&&idx==6)
		{
			return 1;
		}
		if(a=='D'&&idx==7)
		{
			return 1;
		}
	}
	return 0;
}
int Question03(void)
{
	int i,a,j,idx;
	a=answer[2];
	if(a=='A'&&a==answer[3])
	{
		return 1;
	}
	if(a=='B'&&a==answer[8])
	{
		return 1;
	}
	if(a=='C'&&a==answer[7])
	{
		return 1;
	}
	if(a=='D'&&a==answer[1])
	{
		return 1;
	}
 	return 0;
}
int Question04(void)
{
	int i,j,a;
	a=answer[3];
	for(i=0,j=0;i<10;i++)
	{
		if(answer[i]=='A')
		{
			j++;
		}
	}
	if(j==5&&a=='A')
	{
		return 1;
	}
	if(j==4&&a=='B')
	{
		return 1;
	}
	if(j==3&&a=='C')
	{
		return 1;
	}
	if(j==2&&a=='D')
	{
		return 1;
	}
	return 0;
}
int Question05(void)
{
	int i,a,j,idx;
	a=answer[4];
	if(a=='A'&&a==answer[0])
	{
		return 1;
	}
	if(a=='B'&&a==answer[1])
	{
		return 1;
	}
	if(a=='C'&&a==answer[2])
	{
		return 1;
	}
	if(a=='D'&&a==answer[3])
	{
		return 1;
	}
 	return 0;
}
int Question06(void)
{
	int i,a=0,b=0,c=0,d=0;
	for(i=0;i<10;i++)
	{
		if(answer[i]=='A')
		{
			a+=1;
		}
		if(answer[i]=='B')
		{
			b+=1;
		}
		if(answer[i]=='C')
		{
			c+=1;
		}
		if(answer[i]=='D')
		{
			d+=1;
		}
	}
	if(a==c||a==d||(a!=b&&a!=c&&a!=d))
	{
		return 1;
	}
	return 0;
}
int Question07(void)
{
	int a=answer[6];
	if((ABS(a,answer[7]))==('D'-a))
	{
		return 1;
	}
	return 0;
}
int Question08(void)
{
	int i,j;
	for(i=0,j=0;i<10;i++)
	{
		if(answer[i]=='A')
		{
			j++;
		}
	}
	if(j==(answer[7]-'A'))
	{
		return 1;
	}
	return 0;
}
int Question09(void)
{
	int i,j,f=0;
	for(i=0,j=0;i<10;i++)
	{
		if(answer[i]!='A')
		{
			j++;
		}
	}
	if(j==2||j==3||j==5||j==7&&answer[8]=='B')
	{
		return 1;
	}
	if(j==4||j==6||j==8||j==9||j==10&&answer[8]=='A')
	{
		return 1;
	}
	if(j<5&&answer[8]=='C')
	{
		return 1;
	}
	if(j==9||j==0||j==1&&answer[8]=='D')
	{
		return 1;
	}
	return 0;
}
int Question10(void)
{
	return 1;
}

相關推薦

一個有趣推理答案

題目原文如下: 1.第一個答案是A的問題是哪一個?( ) A、1 B、2 C、3 D、4 2.唯一的連續兩個具有相同答案的問題是( ) A、5,6 B、6,7 C、7,8 D、8,9 3

一個小小的推理

其中,推理的過程 二、解決過程: 第一步 對X來說: 黑桃:J 8 4 2 紅桃:A Q 4 方塊:A 5 草花:K Q 5 4 對Y來說 2 黑桃 4 紅桃 草花 5 方塊 草花 8 黑桃 J 黑桃 Q 紅桃 梅花 K 梅花 A 紅桃 方塊 第二步: Y先生:我不知道這張牌

一個有趣的足球賽推理及本人的推理

以下是一場足球賽成績表: 場數:該隊總共比過的場數 勝 :該隊勝利的場數 敗 :該隊失敗的場數 平手:該隊平手的場數 進球:該隊在所有比賽中進球數總合 失球:該隊在所有比賽中讓對方進球數總合 積分:勝加2分,平手加1分,敗加0分 已知,下面這張成績表沒有一個數字是正確的

誰養魚,這是一個有趣的邏輯推理,傳說是愛因斯坦提出來的,他宣稱世界上只有2%的人能解出這個題目,傳說不一定屬實,但是這個推理還是很有意思的

題目:據說有五個不同顏色的房間排成一排,每個房間裡分別住著一個不同國籍的人,每個人都喝 一種特定品牌的飲料,抽一種特定品牌的煙,養一種寵物,沒有任意兩個人抽相同品牌的香菸,或喝相同品牌的飲料,或養相同的寵物,問題是誰在養魚作為寵物? 為了尋找答案,給出了十五條線索: 英國人

世界500強面試推理答案

1.擊滑鼠   擊滑鼠比賽現在開始!參賽者有拉爾夫、威利和保羅。   拉爾夫10秒鐘能擊10下滑鼠;威利20秒鐘能擊20下滑鼠;保羅5秒鐘能擊5下滑鼠。以上各人所用的時間是這樣計算的;從第一擊開始,到最後一擊結束。 他們是否打平手?如果不是,誰最先擊完40下滑鼠?   2

奇妙JS程式碼系列(三)一道有趣(建立一個長度為x陣列)

原題描述: 不使用loop迴圈,建立一個長度為100的陣列,並且每個元素的值等於它的下標 這個問題的一些變種例如給一個長度length和value,返回長度為length值全為value的陣列等。 1.誤區 最容易掉入陷阱的: var arr = new Array(100); arr = arr.map(f

七道KB推理!2008年最新的美國FBI犯罪心理測試題(及答案)

以下內容為2008年最新的美國FBI犯罪心理題,刊登於LOS ANGELS CITY某知名推理雜誌中。 翻譯時對於文字達到了非常精確,其中第五題的原文裡是“他的母親是一名臺灣的英語教師”(ENGLISH TEACHER OF TAIWAN) ,由於答案十分恐怖駭人,特改變國籍

一個有趣的演算法

今天看到一道很有意思的演算法面試題,因為之前很少研究演算法,好奇心加上暴躁的脾氣,就決定一定要幹掉這道題: 5個小姐站成一列 他們的姓不同 衣服顏色不同 和不同的飲料 樣不同的寵物 吃不同的水果 1錢小姐穿紅色的衣服, 2翁小姐養一隻狗,

Nim Game,一個有趣的遊戲,也是一道入門演算法

Nim Game,其實很多人都玩過。其實就是我們玩的劃線遊戲。 一張紙上,畫若干條線,雙方一人劃一次,每次劃掉1~3條線。可以選擇畫1條,也可以劃2條,也可以3條。具體劃去幾條線完全看自己的策略。誰劃掉最後一條線,就是贏家。 如上圖,藍方獲勝。 正在看

Linecode的做答案

write size_t spa ret ++ 矩陣 turn end you 和為零的子矩陣 1 class Solution { 2 public: 3 /** 4 * @param matrix an integer matrix 5

三大關系數據庫字段值超長的一個有趣對比

ins works 關系 created mys 數據源 rec alt mapping 三大關系數據庫字段值超長的一個有趣對比 在開發中,我們可能會遇到插入字段值超長的情況,前陣子遇到這樣一個案例,結果一對比後發現一個有趣的現象,如果插入字段值超長,ORACLE、SQ

【視覺SLAM14講】ch4心得與課後答案【僅供參考】

參考 http sim 數學推導 數學 之間 沒有 sla per 學習心得: 在研究SLAM時候,除了對三維世界剛體運動表示外(ch3),由於噪聲的影響,還要進行對可能的位姿進行優化,而旋轉矩陣必須得是行列式為1的正交矩陣, 為了減少這種約束,我們希望通過李群和李代數

2017年8道php面試題(真+答案

php 高級php1、<?php echo count(strlen(“http://php.net”)); ?>的執行結果是? 答案:1 講解:count(var)是用來統計數組或對象的元素個數的。當var是null或者空數組時,結果為0。如果var是普通變量,則返回1。正常情況下返回var中的

csp真答案整理

自己 div char namespace bsp stream syn int index 最近要過csp......好死不死的又來刷題... 1.公共鑰匙盒 問題描述   有一個學校的老師共用N個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裏,老師不能帶鑰匙回家。每次

速度爆破-shiyanbar的一個編程

name mic ges nbsp 實現 ffffff 腳本 低級語言 參數 (一)出處: shiyanbar中的一個ctf練習題,題目大概意思是:網頁上給定一個sha1的hash值,這個hash值是1-100000中隨機的一個整數先通過‘md5‘hash一次,然後再

一個有趣的邏輯漏洞

情況 任務 有趣 提供商 很多 減少 一個 有趣的 做的 漏洞存在於一個外包服務提供商做的遊戲形式的內網系統。 其中,有一項功能為發布懸賞任務,金幣從自己現有金幣中扣。 這一處存在競爭條件,並發漏洞。 在短時間內發布 無數個 懸賞任務,因為競爭條件的存在,在金幣只有5個的情

VID 與 PVID 的簡單概述,附上一個有趣案例

vlan PVID VID 重要前提,交換機內部的幀都是會打tag的 PVID:port-based vlan id pvid是交換機上的概念,說的是進入該端口的報文如果沒有打vlan id就按pvid的值打上 PVID是基於端口的VLAN ID,一個端口可以屬於多個vlan(trunk 口),

2018.3 江蘇省計算機等級考試 C語言 編程答案

otto font open nco hybrid post 輸出 bold gpo 題目要求:給定一個數字範圍,輸出滿足這些條件:1.能被3整除;2.包含數字5,將滿足的數字放在特定的數組裏輸出、輸出這些數裏5出現的個數、數字的個數。想起來有點傷心,本來很簡單的題,考試的

近幾年難得一見的一道好推理

相同 分享 趣味性 建議 blog 難點 矛盾 嘗試 根據 要改變世界的程序猿,是用代碼邏輯來解決各種問題,編程就是與各種問題鬥智鬥勇的過程,沒有嚴謹的推理能力,是很難通過九九八十一難取得真經的。這是本程序猿近兩三年來看到的最好的一道推理題。 這題的最大難點在於無從下

搜狐Linux運維工程師面試真-答案

linux面試 搜狐linux工程師 搜索了許多linux面試的題目,但是許多都沒有答案,本著分享交流的態度,把搜狐Linux運維工程師面試真題做了,答案可以有不嚴謹的地方,請多多指教!題目來自:https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/detai