free pascal问题:给定一个整数,请将该数各个位上的数字反转得到一个新数。新数也应满足整数的常见形式

2025-12-16 09:19:00
推荐回答(1个)
回答1:

var
s:string;
n,l:longint;
begin
readln(n);
if n=0 then write(0) else
begin
if n<0 then write('-');
str(abs(n),s); l:=length(s);
while s[i]='0' do //这个之前应该有一个赋值是i = l的吧,然后从整数变成的字符串最后一位开始往前查找,如果是0则让i往前移一位,即减一下(下面的dec(i)),因为翻转后,数字的最前面不应该含有0
begin
dec(i); //这个i相当于数组的下标
end;
while i>0 do // 当这个下标大于0的时候,说明这个字符串还没有遍历完
begin
write(s[i]); //这个就是把遍历到的非0的字符输出
dec(i); //因为必须让下标一直减小才能查找到字符串中的所有字符
end;
writeln;
end;
end.

PS:这个程序方法挺好的。