百变鲨王遥控器:Pascal题目求解

来源:百度文库 编辑:高考问答 时间:2024/04/26 00:37:49
1、将1,2...9共9个数分成三组,分别连起来组成三个三位数。并且要使这三个三位数构成1:2:3的比例。试求出所有满足条件的三个三位数。例如:三个三位数192,384,576满足以上条件。

2、有A、B、C、D四名偷窃嫌疑犯,其中一人是小偷,审问中,A说:“我不是小偷”,B说:“C是小偷”,C说:“小偷肯定是D”,D说:“C在冤枉人”,有三人说真话,一人说假话,问到底谁是小偷?

3、5家工厂的产品在一次评比中分获1,2,3,4,5,在公布结果前,已知E厂产品肯定不是第二、三名,五厂代表猜测评比结果:
A厂的代表说:E厂一定能获得第一名。
B厂的代表说:我厂的产品可能获第二名。
C厂的代表说:A厂的产品质量最次。
D厂的代表说:C厂的产品不是最好的。
E厂的代表说:D厂的产品会获得第一名。
公布结果后,发现只有产品获第一名和第二名的两个厂的代表猜对了。
求5个厂的产品各获第几名。
Pascal编程解。。。源程序

第一题:
program l_1(input,output);
var
a:array[0..9] of integer;
f:boolean;
i,ii,iii,j:integer;
procedure fl(x:integer);
begin
while x<>0 do
begin
a[x mod 10]:=a[x mod 10]+1;
x:=x div 10;
end;
end;
begin
for i:=123 to 321 do
begin
fillchar(a,sizeof(a),0)
ii:=i*2;
iii:=i*3;
fl(i);
fl(ii);
fl(iii);
f:=true;
for j:=0 to 9 do
if a[j]=0 then f:=false;
if f=true then writeln(i:5,ii:5,iii:5);
end;
end.
第二题:
program l_2(input,output);
var
a:char;
begin
for a:='A' to 'D' do
if (ord(a<>'A'))+(ord(a='C'))+(ord(a='D'))+ (ord(a<>'D'))=3 then writeln('thief=',a);
end.

第一个~枚举就好啊~~
2\3题 手算
OK?~