问题:
求第N个回文数palindrome。
一个正数如果顺着和反过来都是一样的(如13431,反过来也是13431),就称为回文数。约束:
回文数不能以0开头。
回文数从1开始。
首先我们要写一个算法求回文数。刚开始我想到用用字符串来存储数,然后判断原序和逆序是否相等。
void func1(char a[]) { printf("%d",strlen(a)); char *p=a; char *q=a+strlen(a)-1; bool flag=true; while(q>p) { if(*q!=*p) { flag=false; break; } q--;p++; } if(flag) printf("%s 是回文数 ",a); else printf("%s 不是回文数 ",a); } int main() { char s[50]; while(scanf("%s",s)!=0) { printf("%d",strlen(s)); func1(s); }
注意,用strlen的时候只检测什么时候到‘