给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121是回文,而123 不是。
示例 1:输入:x=121输出:true
示例2:输入:x=-121输出:false
解释:从左向右读,为-121。从右向左读,为12·
示例 3:输入:x=10输出:false
解释:从右向左读,为01。因此它不是一个回文数。
示例 4:输入:x= -101输出:false
提示:<=X<=
#include<iostream>
using namespace std;
bool isPalindrome(int x)
{
if(x<0) return false;
char r[11];
int n=snprintf(r,11,"%d",x);
"""
snprintf()是C 标准库 - <stdio.h>里的一个函数。
描述
snprintf() 是一个 C 语言标准库函数,用于格式化输出字符串,并将结果写入到指定的缓冲区,与 sprintf() 不同的是,snprintf() 会限制输出的字符数,避免缓冲区溢出。
C 库函数 int snprintf(char *str, size_t size, const char *format, ...) 设将可变参数(...)按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断,最多写入 size-1 个字符。
与 sprintf() 函数不同的是,snprintf() 函数提供了一个参数 size,可以防止缓冲区溢出。如果格式化后的字符串长度超过了 size-1,则 snprintf() 只会写入 size-1 个字符,并在字符串的末尾添加一个空字符(\0)以表示字符串的结束。
声明
下面是 snprintf() 函数的声明
库函数:snprintf(char * str, size_t size, const char * format, ... )
"""
int i;
for(i=0;i<n/2;i++)
{
if(r[i]!=r[n-i-1])
return false;
}
return true;
}
int main()
{
int a;
cout<<"Please enter the number you want to verify:";
cin>>a;
int An=isPalindrome(a);
if(An==1) cout<<An<<"\t"<<"You enter number is a palindromic number"<<endl;
else cout<<An<<"\t"<<"You enter number is not a palindromic number"<<endl;
return 0;
}