如何把123变成可用于计算的321?用pascal来实现

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:39:45
主要是为了解决noip1999的第二题,用分块儿的几个子程序来实现

如果i=123
那么你可以这么写:
j=(i mod 100)*100+((i-i div 100*100)div 10)*10+(i div 100);

j就是321了

var
s:string;
n:integer;
begin
read(s);(假设此时s='123')
for i:=0 to length(s) do s[i]:=s[length(s)-i+1];
(s[0]存的是s的位数,不可省)
val(s,n);
(n可用于计算)
end.

说清楚点。
如果是123变321,很简单
变字符串再倒序。

const z=256;
var min,i,n,step:integer;
s:string;
a,b:array[1..z] of byte;
ok:boolean;
begin
assign(input,'1999t2.in');
assign(output,'1999t2.out');
reset(input);
rewrite(output);
fillchar(a,sizeof(a),0);
step:=0;
read(n);readln(s);
for i:=length(s) downto 1 do
case s[i] of
'0'..'9':val(s[i],a[z+i-length(s)]);
'A':a[z+i-length(s)]:=10;
'B':a[z+i-length(s)]:=11;
'C':a[z+i-length(s)]:=12;
'D':a[z+i-length(s)]:=13;
'E':a[z+i-le