281 条题解
-
0Dear LV 8 @ 2009-08-17 15:33:54
var s,s1:string;
c:char;
i,j,n,m,code,x,l:integer;
begin
readln(s);
s1:=copy(s,1,1)+copy(s,3,3)+copy(s,7,5);
for i:=1 to 9 do
begin
val(s1[i],m,code);
l:=l+m*i;
end;
l:=l mod 11 ;
if l=10
then c:='X'
else
c:=chr(l+48);
if c=s[13]
then writeln('Right')
else
begin s[13]:=c;
writeln(s);
end;
end.
妈的,x和r要大写才Ac,还我交了3次。 -
02009-08-17 15:15:18@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
l,a,i,tot:longint;
s,s1,b:string;
st:array[1..10] of string;
sum:array[1..10] of longint;
begin
readln(s);
st[1]:=copy(s,1,1);
st[2]:=copy(s,3,3);
st[3]:=copy(s,7,5);
st[4]:=copy(s,13,1);s1:=st[1]+st[2]+st[3];
l:=length(s1);
for i:=1 to l do
sum[i]:=ord(s1[i])-ord('0');for i:=1 to 9 do
tot:=tot+sum[i]*i;
a:=tot mod 11;
str(a,b);if st[4]='X'
then begin
if b='10'
then writeln('Right')
else writeln(st[1],'-',st[2],'-',st[3],'-',b);
end;
if st[4]'X'
then if b=st[4]
then writeln('Right')
else begin
a:=tot mod 11;
str(a,b);
if b='10'
then writeln(st[1],'-',st[2],'-',st[3],'-X')
else writeln(st[1],'-',st[2],'-',st[3],'-',b);
end;
end.提交了8次,才AC,唉!!!!!!!!!!!!!
-
02009-08-17 10:51:30@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
ch,l:char;
s,t:string;
i,j,k,n,m:integer;begin
read(ch);
i:=1;
n:=0;
while i -
02009-08-16 18:34:06@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
i,j,ans,m,n:longint;
a:array[1..9] of longint;
s:string;
begin
readln(s);
n:=length(s);
j:=1;
for i:=1 to n-1 do
if s[i]'-' then
begin
a[j]:=ord(s[i])-ord('0');
inc(j);
end;
ans:=0;
for i:=1 to 9 do
ans:=ans+a[i]*i;
if (s[n]='X') and (ans mod 11=10) then
writeln('Right')
else
if ans mod 11=ord(s[n])-ord('0') then
writeln('Right')
else if ans mod 11=10 then
begin
for i:=1 to n-1 do
write(s[i]);
writeln('X');
end
else
begin
for i:=1 to n-1 do
write(s[i]);
writeln(ans mod 11);
end;
end.Flag Accepted
题号 P1484
类型(?) 字符串处理
通过 1781人
提交 4438次
通过率 40%
难度 1提交 讨论 题解
-
02009-08-15 11:18:30@
var
s:string;
data:array[1..13] of integer;
len,check:longint;procedure init;
var
i,code:longint;
begin
readln(s);
len:=length(s);
i:=len;
while i>=1 do
begin
if s[i]'-' then data[i]:=ord(s[i])-48;
dec(i);
end;end;
procedure main;
var
i,j:longint;
temp:string;
begin
check:=0;
j:=1;
for i:=1 to len-1 do
begin
if (s[i]'-') then begin
check:=check+data[i]*j;
inc(j);
end;
end;
check:=check mod 11;
if check=10 then temp:='X'
else temp:=chr(check+48);if temp=s[len] then writeln('Right')
else begin
for i:=1 to len-1 do write(s[i]);
writeln(temp);
end;
end;begin
init;
main;
readln;
end. -
02009-08-14 19:50:44@
关键是判断是不是数字
字符串水题 -
02009-08-13 17:00:48@
var st:string;
a,b,c:integer;
x:array[1..13] of integer;
begin
readln(st);
for a:=1 to 13 do
x[a]:=ord(st[a])-ord('0');b:=x[1]+x[3]*2+x[4]*3+x[5]*4+x[7]*5+x[8]*6+x[9]*7+x[10]*8+x[11]*9;
c:=b mod 11;
if c=x[13] then writeln('Right')
else
begin
for a:=1 to 12 dowrite(st[a]);
write(c);
end;
end. -
02009-08-13 12:10:27@
program sad;
var st,c,code,x,i:integer;
a:array[1..1000]of char;
b:array[1..1000]of integer;
begin
for i:=1 to 13 do
read(a[i]);
st:=0;c:=0;
for i:=1 to 11 do
if ((i2) and (i6))
then
begin
c:=c+1;
b[c]:=ord(a[i])-ord('0');
end;
for i:=1 to 9 do
st:=st+b[i]*i;
c:=st mod 11;
if ((c=10) and (a[13]='X')) or (c=(ord(a[13])-ord('0')))
then write('Right')
else
begin
for i:=1 to 12 do
write(a[i]);
if c=10 then write('X')
else write(c);
end;
end. -
02009-08-12 10:47:48@
是不是换行的错误?
-
02009-08-11 22:38:22@
来一个精炼点的
#include
using namespace std;
int main()
{
char a[20],s;
int sum=0,tot=1;
cin>>a;
for(int i=0;i -
02009-08-11 19:47:44@
Program P1484;
var s:string;
a:array[0..100] of integer;
tot,k,i,j,n,m:integer;begin
readln(s);
n:=length(s);
k:=0;
for i:=1 to n-1 do
if ('0' -
02009-08-11 18:21:19@
WA了6次才发现 原来是X与x的区别 靠!!!
-
02009-08-10 10:02:58@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误...程序输出比正确答案长
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案错误...程序输出比正确答案长
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:80 有效耗时:0msvar a:array[1..3139] of integer;
s:array[1..225] of string;
o:string;
j,i:integer;
begin
readln(o);
s[1]:=copy(o,13,1);
s[2]:=copy(o,1,1);
s[3]:=copy(o,3,1);
s[4]:=copy(o,4,1);
s[5]:=copy(o,5,1);
s[6]:=copy(o,7,1);
s[7]:=copy(o,8,1);
s[8]:=copy(o,9,1);
s[9]:=copy(o,10,1);
s[10]:=copy(o,11,1);
for i:=1 to 10 do
val(s[i],a[i],j);
delete(o,13,1);
if (a[2]*1+a[3]*2+a[4]*3+a[5]*4+a[6]*5+a[7]*6+a[8]*7+a[9]*8+a[10]*9) mod 11
=a[1] then writeln('Right');
if (a[2]*1+a[3]*2+a[4]*3+a[5]*4+a[6]*5+a[7]*6+a[8]*7+a[9]*8+a[10]*9) mod 11
a[1] then
begin
a[1]:=(a[2]*1+a[3]*2+a[4]*3+a[5]*4+a[6]*5+a[7]*6+a[8]*7+a[9]*8+a[10]*9) mod 11;
write(o);
if a[1] -
02009-08-09 09:46:51@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误...程序输出比正确答案长
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案错误...程序输出比正确答案长
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:80 有效耗时:0ms
什么问题呀》》》 -
02009-08-04 23:05:03@
var
str:string;
i,j,t:longint;
begin
readln(str);
for i:=1 to 12 do
if str[i] in ['0'..'9'] then
begin
j:=j+1;
case str[i] of
'0':t:=t; '6':t:=t+j*6;
'1':t:=t+j; '7':t:=t+j*7;
'2':t:=t+j*2; '8':t:=t+j*8;
'3':t:=t+j*3; '9':t:=t+j*9;
'4':t:=t+j*4;
'5':t:=t+j*5;
end;
end;
t:=t mod 11;
if (t=ord(str[13])-ord('0')) or (t=10) and(str[13]='X')
then begin writeln('Rignt'); halt; end;
for i:=1 to 12 do write(str[i]);
if t10 then write(t)
else write('X');
end.
编译通过...
├ 测试数据 01:答案错误... ├ 标准行输出 Rignt
├ 错误行输出 Rignt
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案错误... ├ 标准行输出 Rignt
├ 错误行输出 Rignt
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案错误... ├ 标准行输出 Rignt
├ 错误行输出 Rignt
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:70 有效耗时:0ms
帮忙看看哪里出了问题?
偶知道了,低级错误,晕死了 -
02009-08-04 12:12:26@
Program ISBN;
Var str1:string;
sum,i,j:longint;
a:char;
Begin
readln(str1);
sum:=0;
j:=1;
for i:=1 to 11 do
begin
if str1[i] in ['0'..'9'] then
begin
sum:=(sum+(ord(str1[i])-48)*j) mod 11;
j:=j+1;
end;end;
if sum=10 then a:='X'
else a:=chr(sum+48);
if a=str1[13] then writeln('Right') else
begin
for i:=1 to 12 do write(str1[i]);
writeln(a);
end;
End.
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0m -
02009-08-01 17:08:38@
秒杀
var
ibsn:string;
numi:longint;
i,total,m,temp:longint;
begin
readln(ibsn);
if ibsn[length(ibsn)]'X'
then val(ibsn[length(ibsn)],m)
else m:=10;
i:=1;numi:=i;
repeat
if ibsn[i]'-'
then
begin
val(ibsn[i],temp);
total:=temp*numi+total;
inc(numi);
end;
inc(i);
until i=length(ibsn)-1;
if total mod 11=m
then writeln('Right')
else
begin
for i:=1 to length(ibsn)-1 do write(ibsn[i]);
if total mod 1110
then writeln(total mod 11)
else writeln('X');
end;
end. -
02009-07-31 23:06:35@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msinclude
include
using namespace std;
string code;
void print()
{
for(int i=0;i -
02009-07-28 15:01:09@
var
a:string;
p:array[1..13]of integer;
i,n,m:integer;
begin
read(a);for i:=1 to 13 do
if (a[i]'-')and(a[i]'X')
then
p[i]:=ord(a[i])-48;for i:=1 to 11 do
begin
if a[i]'-'
then begin
m:=m+1;
p[m]:=p[i]*m;
n:=n+p[m];
end;
end;n:=n mod 11;
if n10 then
if n=p[13]
then write('Right')
else begin
a[13]:=chr(n+48);
write(a);
end;
if n=10 then
if a[13]='X'
then write('Right')
else begin
a[13]:='X';
write(a);
end;end.
-
02009-07-27 18:37:15@
最没技术的解法:
program isbn;
var
s,t:string;
n,m:longint;
begin
readln(s);
t:=copy(s,1,1);
val(t,n);
m:=0;
m:=m+n*1;
t:=copy(s,3,1);
val(t,n);
m:=m+n*2;
t:=copy(s,4,1);
val(t,n);
m:=m+n*3;
t:=copy(s,5,1);
val(t,n);
m:=m+n*4;
t:=copy(s,7,1);
val(t,n);
m:=m+n*5;
t:=copy(s,8,1);
val(t,n);
m:=m+n*6;
t:=copy(s,9,1);
val(t,n);
m:=m+n*7;
t:=copy(s,10,1);
val(t,n);
m:=m+n*8;
t:=copy(s,11,1);
val(t,n);
m:=m+n*9;
m:=m mod 11;
t:=copy(s,13,1);
if t='X' then n:=10 else val(t,n);
if n=m then writeln('Right') else begin
t:=copy(s,1,12); str(m,s); if s='10' then s:='X'; t:=t+s; writeln(t); end;
end.