首先
你的程序根本运行不了
是错误的!
你按F9
然后按空格
这时你的程序中会出现一条绿色的粗的线
这就是你错误的地方
j是一个循环变量
你一开始就用for j:=把整个程序扩了起来
你那段直到语句也在其中,那怎么可能until j=0呢?
我的程序:
var
n,i,x,j,y,total:longint;
s1,s,k,k1,ch:string;
begin
readln(n);
total:=0;
for i:=1 to n do begin
y:=i;
s:='';
s1:='';
repeat
x:=y mod 2;
str(x,ch);
s:=ch+s;
s1:=s1+ch;
y:=y div 2
until y=0;
if s1=s then begin
str(i,k);
k1:='';
for j:=length(k) downto 1 do
k1:=k1+k[j];
if k1=k then inc(total);
end;
end;
writeln(total);
end.
穷举生成2进制的回文数,反过来验证10进制的时候是否也是回文
直接穷举10进制数是会超时的
= =
姐姐会= =
我学的忘了= =