大家看下这题有错么?
pascal吧
全部回复
仅看楼主
level 5
题目是:1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
我编的见二楼。
2014年02月01日 15点02分 1
level 5
program hkr;
var
a,b,c,d,n,j,i:integer;
begin
n:=0;
for i:=1000 to 9999 do
begin
n:=i;
a:=n div 1000;
b:=n mod 1000 div 100;
c:=n mod 100 div 10;
d:=n mod 10;
if a+(10*b)+(100*c)+(1000+d)=n then
begin
writeln(n);
end;
end;
readln
end.
2014年02月01日 15点02分 2
level 5
就是输出不出来
2014年02月01日 15点02分 3
level 5
换了种方法,出来了。能解释一下上面的为什么错了呢?
2014年02月01日 15点02分 4
level 5
program hkr;
var
a,b,c,d,i,n:integer;
begin
i:=999;
repeat
i:=i+1;
n:=i;
a:=n div 1000;
b:=n div 100 mod 10;
c:=n div 10 mod 10;
d:=n mod 10;
if a+10*b+100*c+1000*d=n then
begin
writeln(i);
end;
until i=9999;
readln
end.
对了
2014年02月01日 15点02分 5
level 5
哦,我知道了,最上面的1000*d写成了1000+d,大家打扰了
2014年02月01日 15点02分 6
level 11
楼主我带来了水水的
十五字
再见了。
2014年02月01日 16点02分 7
level 9
for i:=1 to 9 do for j:=0 to 9 do writeln(i,j,j,i);
2014年02月01日 21点02分 10
level 8
打表吧。
2014年02月01日 23点02分 11
level 4
这样的算法是有局限性的
推荐:
t:=0;
n:=x;
while n>0 do
begin
t:=t+n mod 10;
n:=n div 10;
end;
If t=x
then flag:=true;
2014年02月02日 05点02分 12
level 6
输入为什么在最后呢
2014年02月02日 09点02分 13
level 14
program ex(input,output);
var a,b:char;
begin
for a:='1' to '9' do
for b:='0' to '9' do
writeln(a+b+b+a);
readln();
end.
用我的吧,最简单
2014年02月02日 11点02分 14
解释一下
2014年02月02日 14点02分
明显错的,char加法怎么可以这么用?
2014年02月03日 00点02分
回复 ax_pokl :我这边FPC2.6.2通过。两个char相加编译器会变成两个string相加,结果为string
2014年02月03日 01点02分
回复 黄恺瑞 :从左往右读和从右往左读相同的涵义就是第一个等于第四个、第二个等于第三个。
2014年02月03日 01点02分
level 14
至于你的,我来讲讲。
program hkr;
var
a,b,c,d,n,j,i:integer;
begin
n:=0;
for i:=1000 to 9999 do
begin
n:=i;
a:=n div 1000;
b:=n mod 1000 div 100;
c:=n mod 100 div 10;
d:=n mod 10;
if a+(10*b)+(100*c)+(1000+d)=n then //这一行打错了,是(1000*d)
begin
writeln(n);
end;
end;
readln
end.
2014年02月02日 11点02分 15
恩恩,手打快了,感谢光顾
2014年02月03日 11点02分
level 7
所有节日对于我来说就只有两字——吃啥!!
2014年02月05日 23点02分 16
level 1
楼主我带来了水水的十五字再见了。
2014年02月06日 02点02分 17
1