回文数-lintcode-c++

准备知识
1.sprintf函数
sprintf 最常见的应用之一是把整数打印到字符串中。例如把整数123 打印成一个字符串保存在s 中,sprintf(s, “%d”, 123); //产生”123”
2.c++格式化输出

cout<<dec<<a<<endl; //以十进制形式输出整数
  cout<<hex<<a<<endl; //以十六进制形式输出整数a
  cout<<setbase(8)<<a<<endl; //以八进制形式输出整数a
  char *pt="China"; //pt指向字符串"China"
  cout<<setw(10)<<pt<<endl; //指定域宽为,输出字符串
  cout<<setfill('*')<<setw(10)<<pt<<endl; //指定域宽,输出字符串,空白处以'*'填充

%d表示十进制有符号整数,printf(”a=%d\n”, a); /结果输出十进制整数a=1234/
题目
判断一个正整数是不是回文数。

回文数的定义是,将这个数反转之后,得到的数仍然是同一个数。
思路
将数字转化为字符串,然后进行首尾比较。注意如何转换,首先是利用sprintf将数字转化为char[],因为要获取长度所以还必须转化为string.
代码

class Solution {
public:
    /*
     * @param num: a positive number
     * @return: true if it's a palindrome or false
     */
    bool isPalindrome(int num) {
        // write your code here
        char s[33];
        sprintf(s,"%d",num);
        string str(s);
        for(int i=0;i<str.size()/2;i++){
            if(str[i]!=str[str.size()-1-i])
            return false;
        }
    return true;

    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值