pascal程序纠错

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:28:03
[题目描述]
茶道者,烹茶饮茶之艺术也。水温、茶量为茶质感之限。现有两数值,数值一为水温,其范围不过零至一百(0~100),用二进制表示;数据二即茶量(十进制),弗多于四千万有八(0~40000008)。请君输出水温与茶量之积(十进制)。
[样例输入] [样例输入]
0 0 0 0 1 1 0 0 1 1 0 1 0 0
180795 12580
[样例输出] [样例输出]
1084770 654160

program lx01;
var s,q:string;
j,k,code:integer;
i,x:longword;
ch:char;
f1,f2:text;
procedure zhuan(s:string;var j:integer);
var a:array[1..10]of integer;
kl,l,m,n,k:integer;
begin
kl:=0; l:=length(s); j:=0; n:=0;k:=0;
for kl:=1 to l do
if s[kl]<>' ' then begin inc(k);a[k]:=ord(s[kl])-48;end;
for kl:=l downto 1 do
begin
m:=2**n;
j:=j+a[kl]*m;
inc(n);
end;
end;
begin
assign(f1,'tea.in');
assign(f2,'tea.out');
reset(f1);rewrite(f2);
s:='';k:=0; q:='';
while not eof(f1) do
begin<

12天前刚做过这道题,一次就过了.
这是我写的程序

var i,j,k,p,d:integer;
s:string;
n,n1,num:int64;
ch:char;

begin
assign(input,'tea.in');reset(input);
assign(output,'tea.out');rewrite(output);
while not eoln do
begin
read(ch);
val(ch,num,p);
if p<>0 then continue;
s:=s+ch;
end;

readln;

j:=-1;
n:=0;
for i:=length(s) downto 1 do
begin
inc(j);
val(s[i],num,p);
d:=1;

for k:=1 to j do d:=d*2;
n:=n+num*d;
end;

readln(n1);

writeln(n1*n);
close(output);
close(input);
end.