#3333: 请问有什么错了?


Bcxx (bcxx)

學校 : 江门一中
編號 : 10316
來源 : [119.133.240.148]
最後登入時間 :
2011-07-22 01:04:13
d124. 3的倍数 | From: [183.34.60.61] | 發表日期 : 2010-01-28 00:22

program d124(input,output);
var
sNum:string;
i,iCounter:integer;
begin
while not eof do
 begin
 readln(sNum);iCounter:=0;
 if sNum[1]<>'-' then iCounter:=iCounter+ord(sNum[1])-ord('0');
 for i:=2 to length(sNum) do
 iCounter:=iCounter+ord(sNum[i])-ord('0');
 if iCounter mod 3=0 then
  writeln('yes')
else writeln('no');
 end;
end.

 
#3390: Re:请问有什么错了?


liouzhou_101 (王启圣)

學校 : 广西柳州高级中学
編號 : 3714
來源 : [126.108.190.144]
最後登入時間 :
2023-07-21 17:40:51
d124. 3的倍数 | From: [116.253.1.220] | 發表日期 : 2010-02-08 19:53

program d124(input,output);
var
sNum:string;
i,iCounter:integer;
begin
while not eof do
 begin
 readln(sNum);iCounter:=0;
 if sNum[1]<>'-' then iCounter:=iCounter+ord(sNum[1])-ord('0');
 for i:=2 to length(sNum) do
 iCounter:=iCounter+ord(sNum[i])-ord('0');
 if iCounter mod 3=0 then
  writeln('yes')
else writeln('no');
 end;
end.


错在

i,iCounter:integer;

不应该用integer,当有9999个9时,iCounter就会超过integer的范围,应该用longint。

pascal的同学请注意:当定义整形变量时,请习惯用longint,这样会减少不少麻烦的。

(PS 我就吃过亏...)

 
ZeroJudge Forum