level 7
var i,j,k,l:longint;
s:string;
begin
readln(s);
j:=1;
l:=0;
for i:=length(s) downto 1 do begin
if(s[i] in ['0'..'9'])then k:=ord(s[i])-ord('0');
if(s[i] in ['A'..'F'])then k:=ord(s[i])-ord('A')+10;
inc(l,j*k);
j:=j*16;
end;
writeln(l);
end.
此乃源代码。
题目是输入16进制数,输出其10进制表示。
2013年11月17日 10点11分
1
level 13
试试这个程序看:
var s:ansistring;i,k:longint;ans:qword;
begin
readln(s);
for i:=1 to length(s) do begin
k:=ord(s[i]);
if (k>=48) and (k<=57) then ans:=ans*16+k-48 else ans:=ans*16+k-55;
end;
writeln(ans);
end.
2013年11月17日 12点11分
3
哦哦 谢谢了
2013年11月17日 12点11分
回复 赛尔号玩家① :你的程序可能是j爆掉了……
2013年11月17日 12点11分
回复 汪靖恒 :艹 纠结半天原来是变量问题 坑啊
2013年11月17日 12点11分
回复 汪靖恒 :谢 已过
2013年11月18日 11点11分