回文数:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
生活随笔
收集整理的這篇文章主要介紹了
回文数:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、方法一:將數字轉換為字符串,并檢查字符串是否為回文
#include<iostream>
using namespace std;class Solution {
public:bool isPalindrome(int x) {if (x < 0){return false;}char str[20];sprintf(str, "%d", x);int len = strlen(str);for (int i = 0; i < len / 2; i++){char temp=str[i];str[i] = str[len - 1 - i];str[len - i - 1] = temp;}int y;sscanf(str, "%d", &y);if (x==y){return true;}return false;}
};int main()
{Solution p;cout<<p.isPalindrome(-2)<<endl;system("pause");return 0;
}
2、方法二:將數字本身反轉,然后將反轉后的數字與原始數字進行比較
#include<iostream>
using namespace std;class Solution {
public:bool isPalindrome(int x) {if (x < 0 || x % 10 == 0 && x != 0){return false;}int y = 0;while (x > y){y = y * 10 + x % 10;x = x / 10;}if (x == y || x == y / 10){return true;}return false;}
};int main()
{Solution p;cout<<p.isPalindrome(-2)<<endl;system("pause");return 0;
}
總結
以上是生活随笔為你收集整理的回文数:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用标准库sprintf、sscanf函
- 下一篇: c++中求字符串数组的min/max