回文程序(PASCAL)

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:57:10
回文是指正向读和反向读都一样的一段数字或者文字,如321123或“able was I ere I saw elba”。编写程序,输入一个9位整数,并判断它是否是回文。
1.如果输入数不是9位整数,则显示一个错误信息如“1234 is not a n-digit number”;(其中1234是输入的数值,n为four、five、six、seven、eight、nine等)
2.输出格式如“12221 is a palindrome!”,“12223 is not a palindrome!"
看到有兄台问C的程序,偶也好奇咧~高手请予告知,感激不尽*^_^*

我的程序:
Var
s:String;
i,Len:integer;
Flat:Boolean;
Begin
Readln (s);
Len:=Length(s);
If Len<>9 Then
Begin
Writeln (s,' is not a ',Len,'-digit number');
Halt;
End;
Flat:=True;
For i:=1 To Len Div 2 Do
If s[i]<>s[Len-i+1] Then
Begin
Flat:=False;
Break;
End;
If Flat Then Writeln (s,' is a palindrome!') Else Writeln (s,' is not palindrome!');
End.

C=12221
MOD(12221/10)=1
MOD(1222.1)=2
.
.
.
MOD(12.221)/10=1
看到了吧? 取余数 一共取长度的位数
得到的数再 乘10
最后得到的数和原来的比较
if 一样的
then
正确
else
不是
end if
自己试试看

#include<iostream.h>
#include<string.h>
#include<stdlib.h>
//双栈数据结构定义
typedef struct
{
int size;//栈的大小
int length1;//栈1长度
int length2;//栈2长度
char *data;//数据
}