pascal高手请问!

来源:百度知道 编辑:UC知道 时间:2024/05/23 19:21:35
有一道题:用自然数300,262,205,167分别除以某整数A,所得到的余数均相同。求出整数A以及相除的余数?
program yushuxiangtong;
var
a,w,x,y,z:word;
begin
a:=0;
repeat
inc(a);
w:=300 mod a;
x:=262 mod a;
y:=205 mod a;
z:=167 mod a;
if (w=x) and (x=y) and (y=z)
then
writeln('A=',a,' ':3,'yushu=',w);
until
a>300;
readln
end.
其中第三行,我试了发现:a,w,x,y,z定义为integer和word等都行,但唯独byte不行,那样run时将出现exitcode=200.为什么?

因为byte只能表示0~256,范围太小了,不够本题目的计算。

var
x,y:Integer;
begin
for x:=1 to 300 do
begin
for y:=0 to 300 do
begin
if (300 mod x=y) and (262 mod x=y) and (205 mod x=y) and (167 mod x=y) then
begin
Memo1.Clear;
Memo1.Lines.Add('x='+inttostr(x));
Memo1.Lines.Add('y='+inttostr(y));
end;
end;
end;
end;

整数X为19,余数Y为15

byte类型的取值范围太小了

byte类型的取值范围太小了 byte类型的取值范围太小了