
USACO第一题Your ride is here 为什么我的程序错了。。PASCAL的 5
ID:yangchao'sprogramPROG:rideLANG:PASCALprogramride(input,output);vars:string[6];a,b,...
ID:yangchao's program
PROG:ride
LANG:PASCAL
program ride(input,output);
var
s:string[6];
a,b,c:longint;
begin
assign(input,'ride.in');
reset(input);
assign(output,'ride.out');
rewrite(output);
readln(s);
b:=1;
c:=1;
for a:=1 to length(s) do begin
b:=b * (ord(s[a]) - 64);
end;
readln(s);
for a:=1 to length(s) do begin
c:=c * (ord(s[a]) - 64);
end;
if (c mod 47) =(b mod 47) then
writeln('GO')
else
writeln('STAY');
close(input);
close(output);
end. 展开
PROG:ride
LANG:PASCAL
program ride(input,output);
var
s:string[6];
a,b,c:longint;
begin
assign(input,'ride.in');
reset(input);
assign(output,'ride.out');
rewrite(output);
readln(s);
b:=1;
c:=1;
for a:=1 to length(s) do begin
b:=b * (ord(s[a]) - 64);
end;
readln(s);
for a:=1 to length(s) do begin
c:=c * (ord(s[a]) - 64);
end;
if (c mod 47) =(b mod 47) then
writeln('GO')
else
writeln('STAY');
close(input);
close(output);
end. 展开
3个回答
展开全部
yjw40的话比较正确,本题数据范围适中,longint足够解决,但要取余
若还不行的话, s:string[6];
试着改成string
若还不行的话, s:string[6];
试着改成string
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-08-05 广告
Paykka 适合有全球贸易需求的企业或个人使用,特别是那些涉及东南亚地区交易、需要高效收款和结算的用户,以及有小额支付需求的商家。它能满足这些用户在跨境交易中的各种支付需求。...
点击进入详情页
本回答由paykka提供
展开全部
范围小了
试试这个吧
Var s1,s2:string;
l1,l2,i,ss1,ss2:longint;
Begin
assign(input,'ride.in');
reset(input);
assign(output,'ride.out');
rewrite(output);
readln(s1);
readln(s2);
l1:=length(s1);
l2:=length(s2);
ss1:=1;
For i:=1 to l1 do ss1:=(ss1*(ord(s1[i])-64))mod 47;
ss2:=1;
For i:=1 to l2 do ss2:=(ss2*(ord(s2[i])-64))mod 47;
if ss1=ss2 Then writeln('GO') else writeln('STAY');
close(input);
close(output);
End.
试试这个吧
Var s1,s2:string;
l1,l2,i,ss1,ss2:longint;
Begin
assign(input,'ride.in');
reset(input);
assign(output,'ride.out');
rewrite(output);
readln(s1);
readln(s2);
l1:=length(s1);
l2:=length(s2);
ss1:=1;
For i:=1 to l1 do ss1:=(ss1*(ord(s1[i])-64))mod 47;
ss2:=1;
For i:=1 to l2 do ss2:=(ss2*(ord(s2[i])-64))mod 47;
if ss1=ss2 Then writeln('GO') else writeln('STAY');
close(input);
close(output);
End.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
范围不够,你看一看数据范围就知道了,变量b和c这样一直乘下去,肯定要超过longint范围的,建议你把两个for循环里的b:=b*(ord(s[a])-64)和c:=c*(ord(s[a])-64)改成b:=b*(ord(s[a])-46) mod 47和c:=c*(ord(s[a])-64) mod 47,这样应该对了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询