#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int getDigit(int number);
int main()
{
int num,digit;
bool sign = true;
cin>>num;
digit = getDigit(num);
int each[digit];
for(int i = 0;i < digit;i++)
{
each[i] = num%10;
num/=10;
}
for(int i = 0;i<digit/2;i++)
{
if(each[i] != each[digit-1-i])//如果对称位置的数不相同,就不是幸运数
{
sign = false;
break;
}
}
if(sign)cout<<"yes";
else cout<<"no";
return 0;
}
int getDigit(int number)//得到这个数的位数
{
int i=0;
while(number != 0)
{
i++;
number/=10;
}
return i;
}
①思路:如果这个数是幸运数,那它的第一位和最后一位相同,第二位和倒数第二位相同…,比较即可
②步骤:
首先得到这个数,并通过digit函数得到它的位数
然后通过/10%10之类的方法把这个数按位数拆分成单独的每一个数,放入长度为位数的数组中
然后比较第一位和最后一位是否相同,第二位和倒数第二位是否相同
③其他:如果想得到逆序的这个数,把拆分位数得到的数组逆一下序,再乘1乘10等等