把这个数的倒转数求出来,然后和原数对比就好了。十进制。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
bool
isPalindrome(
int
num)
{
int
pal = 0;
int
origin = num;
while
(num)
{
pal *= 10;
pal += num % 10;
num /= 10;
}
return
pal == origin;
}
|
题目
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main()
- {
- char str[1001];
- int len, flag, i;
- while(scanf("%s",str) != EOF)
- {
- flag = 1;
- len = strlen(str);
- for(i = 0; i < len/2; i ++)
- {
- if(str[i] != str[len - 1 -i])
- {
- flag = 0;
- break;
- }
- }
- if(flag)
- printf("Yes!\n");
- else
- printf("No!\n");
- }
- return 0;
- }
指针操作
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void isSymmetrical(char *str)
- {
- char *begin, *end;
- int flag, len = strlen(str);
- for (begin = str, end = str + len - 1, flag = 1; begin <= end; begin ++, end --) {
- if (*begin != *end) {
- flag = 0;
- break;
- }
- }
- if (flag)
- printf("Yes!\n");
- else
- printf("No!\n");
- }
- int main(void)
- {
- char str[1001];
- while (gets(str)) {
- isSymmetrical(str);
- }
- return 0;
- }
- /**************************************************************
- Problem: 1192
- User: wangzhengyi
- Language: C
- Result: Accepted
- Time:10 ms
- Memory:912 kb
- ****************************************************************/