题目
/*
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;
否则,返回 false 。
回文数
是指正序(从左向右)和倒序(从右向左)
读都是一样的整数。
例如,121 是回文,而 123 不是。
*/
我的解题思路:小于零的都不是回文数,零是回文数,将数值x按位输入到数组中,利用判断是否关于中间数对称判断是否为回文数。
利用VS写代码:
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
int a[12], i = 0, k = 0;
int chushu = 999;
if(x > 0)
{
while(chushu != 0)
{
chushu = x/10;
a[i] = x%10;
x = chushu;
i++;
}
for(int j = 0; j < (i/2); j++)
{
if(a[j] == a[i-j-1]) //判断是否关于中间数对称
{
k++;
}
}
if(k == i/2)
{
printf("true");
}
else
{
printf("false");
}
• }
• else
• {
• printf("false");
• }
• return 0;
}
VS结果:
不幸的消息是带入力扣一直出错
出错原因:不应该写printf("true");
应该返回0或者1;
最后结果:
/*
bool isPalindrome(int x) {
int a[10], i = 0, k = 0;
int chushu = 1;
if (x >= 0) {
while (chushu != 0) {
chushu = x / 10;
a[i] = x % 10;
x = chushu;
i++;
}
for (int j = 0; j < (i / 2); j++) {
if (a[j] == a[i - j - 1]) {
k++;
}
}
if (k != i / 2) {
return 0;
} else {
return 1;
}
} else if (x > 0) {
return 0;
}
return 0;
}
*/
完事大吉啦!
再接再励吧!!!!!!!
脑袋空空。
如果有错,请赐教,感谢!