回文数问题改错。。知道的大师请进!!!
题目:输入一个正整数,判别是否回文数。(回文数:从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。)
要求:用for循环实现,循环变量用i,如果是回文数,结果为.T.;不是,结果为.F.。将判断结果存放在变量S中,且红字部分不能改。
我的答案(有误):
[color=Red]set talk off
input "数字:" to m[/color]
n=str(m)
L=len(n)
for i=1 to L
if subs(n,i,1)=subs(n,L-i+1,1)
s=".T."
else
s=".F."
endif
endfor
?s
[color=Red]set talk on[/color]
答案做出来都是.F.!
各位大师!!拜托帮我看看哪里不对需要改下!!!小女子这厢谢过先!!!!
[[it] 本帖最后由 zzyymxt 于 2008-6-11 23:53 编辑 [/it]]
input "数字:" to m
if type('m')='N' and int(m)=m and m>=0
n=alltrim(str(m))
L=len(n)
s=.T.
for i=1 to L
if subs(n,i,1)#subs(n,L-i+1,1)
s=.F.
exit
endif
endfor
else
s=.F.
endif
?s
set talk on 谢大师!貌似给动大手术拉!呵呵~~
我自己试了下
发现其实只要把[color=Red]n=str(m)[/color]改成[color=Red]n=alltrim(str(m))[/color]就可以了
不过还是非常感谢那!!!
[tk11] [tk11] [tk11] [tk11] [tk11] “貌似给动大手术拉!呵呵~~”就是要给你的程序动手术,你还别不服气,你的程序是有问题的。
你自己测试一下,你输入1221和1231看看结果 还有,你还可以自己测试一下,你输入 "abc" 【引号、a、b、c、引号】,看看结果 嗯嗯。。有道理!
果然有问题!
但是它显示的提示信息很明确的说是“输入数字”了呀,所以我想字符问题应该不用考虑了吧。。。
但前面一个问题,即1221,1231的问题出在哪里呢?
还有那个#是什么意思?
望解答!谢谢!
还有,补充一下,我可米有不服气的意思。。我是很虚心滴向大师求教哒! 我知道怎么做了。。谢谢!
页:
[1]
