- UID
- 50355
- 阅读权限
- 90
威望
轻币 枚
XD 个
注册时间2008-5-4
最后登录1970-1-1
|
本帖最后由 oliveking 于 2010-8-10 11:08 编辑
375
184
926
===--
-
- PASCAL 计算奖励代码
- {奖励:
- (1)赢4场:10QB
- (2)赢5场:25QB
- (3)赢6场:60QB
- (4)赢7场:500QB
- (5)赢8场:3000QB
- 有平局的话,计算方式为:
- (1)平1局:原有奖励*4
- (2)平2局:原有奖励*16
- (3)平3局:原有奖励*64
- (4)平4局:原有奖励*256
- (5)平5局:1200QB
- (6)平6局:1500QB
- (7)平7局:2000QB
- (8)平8局:2500QB
- (9)平9局:3000QB
- }
- program oliveking
- const
- p0:array[1..9]of integer=(0,0,0,10,25,60,500,3000,0);
- q0:array[1..9]of integer=(-4,-16,-64,-256,1200,1500,2000,2500,3000);
- var
- a,b:array[1..3,1..3]of integer;
- i,j,k:integer;
- s:char;
- exit_,ok_:boolean;
- function calc(t:integer):integer;
- var
- x,y:integer;
- ans:integer;
- p,q:integer;
- begin
- p:=0;q:=0;
- for x:=1 to 3 do
- for y:=1 to 3 do begin
- if a[x,y]=b[x,y]then q:=q+1;
- if a[x,y]<b[x,y]then p:=p+1;
- end;
- ans:=p0[p];
- if q0[q]>0 then ans:=ans+q0[q]
- else ans:=ans*abs(q0[q]);
- calc:=ans;
- end;
- begin
- repeat
- ok:=false;
- writeln('plz input basic matrix');
- for i:=1 to 3 do
- for j:=1 to 3 do
- repeat
- read(s);
- if not((ord(s)<ord('0'))or(ord(s)>ord('9')))then a[i,j]:=ord(s)-ord('0');
- until not((ord(s)<ord('0'))or(ord(s)>ord('9')));
- writeln;
- for i:=1 to 3 do begin
- for j:=1 to 3 do
- write(a[i,j],' ');
- writeln;
- end;
- writeln('ok?,if ok plz type ''Y''');
- readln(s);
- ok_:=((s='Y')or(s='y'));
- until ok_;
- repeat
- writeln('plz input target matrix');
- exit_:=false;
- for i:=1 to 3 do
- for j:=1 to 3 do
- repeat
- read(s);
- if not((ord(s)<ord('0'))or(ord(s)>ord('9')))then b[i,j]:=ord(s)-ord('0');
- until not((ord(s)<ord('0'))or(ord(s)>ord('9')));
- writeln;
- for i:=1 to 3 do begin
- for j:=1 to 3 do
- write(b[i,j],' ');
- writeln;
- end;
- k:=calc(0);
- writeln('Ans:',k,'QB');
- writeln('exit?,if ok plz type ''Y''');
- readln(s);
- exit_:=((s='Y')or(s='y'));
- until exit_;
- end.
复制代码 |
|