回文数 II
【描述】
判断一个非负整数 n 的二进制表示是否为回文数
0 <= n <= 2^32 - 1
【样例】
样例1
输入: n = 0
输出: True
解释:
0 的二进制表示为:0。
样例2
输入: n = 3
输出: True
解释:
3 的二进制表示为:11。
样例3
输入: n = 4
输出: False
解释:
4 的二进制表示为:100。
样例4
输入: n = 6
输出: False
解释:
6 的二进制表示为:110。
【方法】
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
bool isPalindrome(int n) {
vector<int> digits;
if (n == 0) {
return true;
}
while (n != 0) {
int i = n % 2;
digits.push_back(i);
n /= 2;
}
int size = digits.size();
int sizeHalve = size / 2;
for (int i = size - 1; i >= sizeHalve; i--) {
if (digits[i] != digits[size - 1 -i]) {
return false;
}
}
return true;
}
int main() {
int n = 3;
printf("请输入测试数字;");
while (scanf("%d", &n) != EOF) {
printf("\n");
if (isPalindrome(n)) {
printf("isPalindrome——true\n");
}else {
printf("isPalindrome——false\n");
}
printf("==========================\n");
printf("请输入测试数字;");
}
return 0;
}
【结果】
请输入测试数字;0
isPalindrome——true
==========================
请输入测试数字;1
isPalindrome——true
==========================
请输入测试数字;2
isPalindrome——false
==========================
请输入测试数字;3
isPalindrome——true
==========================
请输入测试数字;4
isPalindrome——false
==========================
请输入测试数字;5
isPalindrome——true
==========================
请输入测试数字;6
isPalindrome——false
==========================
请输入测试数字;7
isPalindrome——true
==========================
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)