讨论 / 好心帮帮忙啊
ljw1994 2010-08-06 05:46:00
点我顶贴 收藏 删除
399题,第8和第10过不了,帮忙看看

program word;

const su:array [1..25] of integer =(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97);

var str:array[1..100]of char;

a:array[1..100]of integer;

i,j,k,max,min,s,w:longint;

ch:char;

begin

read(ch);

w:=1;

str[1]:=ch;

while not eof do

begin

w:=w+1;read(ch);

str[w]:=ch;

end;

for i:=1 to w

do

for j:=1 to w do begin

if str[i]=str[j] then a[i]:=a[i]+1;

end;

max:=a[1];

for i:=1 to w do

if a[i]>max then max:=a[i];

min:=a[1];

for i:=1to w do

if a[i]<min then min:=a[i];

s:=max-min; k:=0;

for i:=1 to 25 do

if su[i]=s then begin writeln(’Lucky Word’);

writeln(s); exit;

end;

if su[i]<>s then begin writeln(’No Answer’);

writeln(k); end;

end.

#1 ljw1994@2009-03-12 07:01:00
回复 删除
program word;

var str:array[1..100]of char;

a:array[1..100]of integer;

i,j,k,max,min,s,w,l,m,r:longint;

ch:char;

begin

read(ch);

w:=1;

str[1]:=ch;

while not eof do

begin

w:=w+1;read(ch);

str[w]:=ch;

end;

for i:=1 to w

do

for j:=1 to w do begin

if str[i]=str[j] then a[i]:=a[i]+1;

end;

max:=a[1];

for i:=1 to w do

if a[i]>max then max:=a[i];

min:=a[1];

for i:=1to w do

if a[i]<min then min:=a[i];

s:=max-min; k:=0;

m:=0;l:=2;

if s=2 then begin writeln(’Lucky Word’);

writeln(s); exit; end;

if s=0or 1 then begin writeln(’No Answer’);

writeln(k); exit;

end;

repeat

r:=s mod l;

if r=0 then m:=1;

l:=l+1;until(l>s-1)or(m=1);

if m=0 then begin writeln(’Lucky Word’);

writeln(s); exit;

end;

if m=1 then begin writeln(’No Answer’);

writeln(k); end;

end.

改动后还是只得80....-_-

#2 xiaohao001@2010-08-06 05:46:00
回复 删除
和楼主一样得悲剧
查看更多回复
提交回复