IQrace 版 (精华区)
发信人: WindowsXP (★★★御风而行★★★), 信区: IQrace
标 题: Re: 98%的人一小时也做不出来的题目(答案) (转载)
发信站: 哈工大紫丁香 (2003年02月23日00:02:47 星期天), 站内信件
题目出的太好了,呵呵
最近脑子迟钝,懒得分析,花了点时间编了个程序穷举了一下,
运算了不到3秒,还算挺快的,呵呵
唉,脑子不愿意活动了,只好用傻子方法了,hoho,苦笑中
题目有唯一解:3452554321,其中12345分别代表ABCDE
delphi原代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
function It_is_correct(sample:array of integer):boolean;
function ans1(sample:array of integer):integer;
function ans2(sample:array of integer):integer;
function ans3(sample:array of integer):integer;
function ans4(sample:array of integer):integer;
function ans5(sample:array of integer):integer;
function ans6(sample:array of integer):integer;
function ans7(sample:array of integer):integer;
function ans8(sample:array of integer):integer;
function ans9(sample:array of integer):integer;
function ans10(sample:array of integer):integer;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function Tform1.ans1(sample:array of integer):integer;
var
i:integer;
temp:integer;
begin
// 1、第一个答案是b的问题是哪一个?
// (a)2;(b) 3;(c)4;(d)5;(e)6
temp:=0;
for i:=0 to 9 do
begin
if sample[i]=2 then
begin
temp:=i+1;
break;
end;
end;
if temp=2 then begin result:=1; exit;end;
if temp=3 then begin result:=2; exit;end;
if temp=4 then begin result:=3; exit;end;
if temp=5 then begin result:=4; exit;end;
if temp=6 then begin result:=5; exit;end;
end;
function Tform1.ans2(sample:array of integer):integer;
begin
// 2、唯一的连续两个具有相同答案的问题是:
// (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;
result:=0;
if sample[1]=sample[2] then begin result:=1; exit;end;
if sample[2]=sample[3] then begin result:=2; exit;end;
if sample[3]=sample[4] then begin result:=3; exit;end;
if sample[4]=sample[5] then begin result:=4; exit;end;
if sample[5]=sample[6] then begin result:=5; exit;end;
end;
function Tform1.ans3(sample:array of integer):integer;
begin
// 3、本问题答案和哪一个问题的答案相同?
// (a)1;(b)2;(c)4;(d)7;(e)6
result:=0;
if sample[2]=sample[0] then begin result:=1; exit;end;
if sample[2]=sample[1] then begin result:=2; exit;end;
if sample[2]=sample[3] then begin result:=3; exit;end;
if sample[2]=sample[6] then begin result:=4; exit;end;
if sample[2]=sample[5] then begin result:=5; exit;end;
end;
function Tform1.ans4(sample:array of integer):integer;
var
i:integer;
begin
// 4、答案是a的问题的个数是:
// (a)0;(b)1;(c)2;(d)3;(e)4
result:=0;
for i:=0 to 9 do
begin
if sample[i]=1 then result:=result+1;
end;
result:=result+1;
end;
function Tform1.ans5(sample:array of integer):integer;
begin
// 5、本问题答案和哪一个问题的答案相同?
// (a)10;(b)9;(c)8;(d)7;(e)6
result:=0;
if sample[4]=sample[9] then begin result:=1; exit;end;
if sample[4]=sample[8] then begin result:=2; exit;end;
if sample[4]=sample[7] then begin result:=3; exit;end;
if sample[4]=sample[6] then begin result:=4; exit;end;
if sample[4]=sample[5] then begin result:=5; exit;end;
end;
function Tform1.ans6(sample:array of integer):integer;
var
i,resulta,resultb,resultc,resultd,resulte:integer;
begin
// 6、答案是a的问题的个数和答案是什么的问题的个数相同?
// (a)b;(b)c;(c)d;(d)e;(e)以上都不是
resulta:=0;
resultb:=0;
resultc:=0;
resultd:=0;
resulte:=0;
for i:=0 to 9 do
begin
if sample[i]=1 then resulta:=resulta+1;
end;
for i:=0 to 9 do
begin
if sample[i]=2 then resultb:=resultb+1;
end;
for i:=0 to 9 do
begin
if sample[i]=3 then resultc:=resultc+1;
end;
for i:=0 to 9 do
begin
if sample[i]=4 then resultd:=resultd+1;
end;
for i:=0 to 9 do
begin
if sample[i]=5 then resulte:=resulte+1;
end;
result:=5;
if resulta=resultb then begin result:=1; exit; end;
if resulta=resultc then begin result:=2; exit; end;
if resulta=resultd then begin result:=3; exit; end;
if resulta=resulte then begin result:=4; exit; end;
end;
function Tform1.ans7(sample:array of integer):integer;
var
i:integer;
begin
// 7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
// (a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)
i:=abs(sample[6]-sample[7]);
if i=4 then begin result:=1;exit;end;
if i=3 then begin result:=2;exit;end;
if i=2 then begin result:=3;exit;end;
if i=1 then begin result:=4;exit;end;
if i=0 then begin result:=5;exit;end;
end;
function Tform1.ans8(sample:array of integer):integer;
var
i:integer;
temp:integer;
begin
// 8、答案是元音字母的问题的个数是:
// (a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)
temp:=0;
for i:=0 to 9 do
begin
if ((sample[i]=1) or (sample[i]=5)) then temp:=temp+1;
end;
if temp=2 then begin result:=1;exit;end;
if temp=3 then begin result:=2;exit;end;
if temp=4 then begin result:=3;exit;end;
if temp=5 then begin result:=4;exit;end;
if temp=6 then begin result:=5;exit;end;
end;
function Tform1.ans9(sample:array of integer):integer;
var
i:integer;
temp:integer;
begin
// 9、答案是辅音字母的问题的个数是:
// (a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,
(e)5的倍数
temp:=0;
for i:=0 to 9 do
begin
if ((sample[i]=1) or (sample[i]=5)) then temp:=temp+1;
end;
temp:=10-temp;
if ((temp=2) or (temp=3) or (temp=5)) then begin result:=1;exit;end;
if ((temp=1) or (temp=2) or (temp=6)) then begin result:=2;exit;end;
if ((temp=1) or (temp=4) or (temp=9)) then begin result:=3;exit;end;
if ((temp=1) or (temp=9)) then begin result:=4;exit;end;
if ((temp=0) or (temp=5)) then begin result:=5;exit;end;
end;
function Tform1.ans10(sample:array of integer):integer;
begin
// 10、本问题的答案是:
// (a)a;(b)b;(c)c;(d)d;(e)e。
end;
function Tform1.It_is_correct(sample:array of integer):boolean;
begin
if ans1(sample)<>sample[0] then begin result:=false; exit; end;
if ans2(sample)<>sample[1] then begin result:=false; exit; end;
if ans3(sample)<>sample[2] then begin result:=false; exit; end;
if ans4(sample)<>sample[3] then begin result:=false; exit; end;
if ans5(sample)<>sample[4] then begin result:=false; exit; end;
if ans6(sample)<>sample[5] then begin result:=false; exit; end;
if ans7(sample)<>sample[6] then begin result:=false; exit; end;
if ans8(sample)<>sample[7] then begin result:=false; exit; end;
if ans9(sample)<>sample[8] then begin result:=false; exit; end;
result:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
options:array[1..10] of integer;
i1,i2,i3,i4,i5,i6,i7,i8,i9,i10:integer;
begin
//showmessage(inttostr(ans5([1,2,2,1,3,2,1,8,3,2])));
//C;D;E;B;E;E;D;C;B;A [3,4,5,2,5,5,4,3,2,1]
//if It_is_correct([3,4,5,2,5,5,4,3,2,1]) then showmessage('yes!')
else showmessage('no');
for i1:=1 to 5 do
begin
for i2:=1 to 5 do
begin
for i3:=1 to 5 do
begin
for i4:=1 to 5 do
begin
for i5:=1 to 5 do
begin
for i6:=1 to 5 do
begin
for i7:=1 to 5 do
begin
for i8:=1 to 5 do
begin
for i9:=1 to 5 do
begin
for i10:=1 to 5 do
begin
if It_is_correct([i1,i2,i3,i4,i5,i6,i7,i8,i9,i10]) then memo1.Lines.
Add(inttostr(i1)+inttostr(i2)+inttostr(i3)+inttostr(i4)+inttostr(i5)+int
tostr(i6)+inttostr(i7)+inttostr(i8)+inttostr(i9)+inttostr(i10));
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
showmessage('Done');
end;
end.
【 在 emanuel (小飞象★傲雪飞扬) 的大作中提到: 】
: 【 以下文字转载自 Joke 讨论区 】
: 【 原文由 online 所发表 】
: 请回答下面10个问题:
: 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
--
多少次迎著冷眼与嘲笑
从没有放弃过心中的理想
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 172.16.2.54]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:204.789毫秒