一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

简介: 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

C语言实现


在C语言中,你可以通过分别提取出五位数的各个位(万位、千位、百位、十位、个位),然后比较这些位是否满足回文数的条件。


c复制代码
 #include <stdio.h>  
 
 #include <stdbool.h>  
 
   
 
 bool isPalindrome(int x) {  
 
     // 排除非五位数和负数  
 
     if (x < 10000 || x > 99999) {  
 
         return false;  
 
     }  
 
       
 
     // 提取各个位  
 
     int tenThousand = x / 10000; // 万位  
 
     int thousand = (x / 1000) % 10; // 千位  
 
     int hundred = (x / 100) % 10; // 百位  
 
     int ten = (x / 10) % 10; // 十位  
 
     int one = x % 10; // 个位  
 
       
 
     // 比较回文  
 
     return (tenThousand == one) && (thousand == ten);  
 
 }  
 
   
 
 int main() {  
 
     int number;  
 
     printf("请输入一个五位数: ");  
 
     scanf("%d", &number);  
 
       
 
     if (isPalindrome(number)) {  
 
         printf("%d 是回文数\n", number);  
 
     } else {  
 
         printf("%d 不是回文数\n", number);  
 
     }  
 
       
 
     return 0;  
 
 }



Python实现


Python 实现会相对简洁一些,因为 Python 提供了更丰富的字符串操作功能。但题目要求的是数字,所以我们可以先将数字转换为字符串,然后检查其是否为回文数。


方法1:字符串比较


python复制代码
 def is_palindrome(x):  
 
     # 排除非五位数和负数  
 
     if not 10000 <= x <= 99999:  
 
         return False  
 
       
 
     # 转换为字符串并检查回文  
 
     return str(x) == str(x)[::-1]  
 
   
 
 number = int(input("请输入一个五位数: "))  
 
 if is_palindrome(number):  
 
     print(f"{number} 是回文数")  
 
 else:  
 
     print(f"{number} 不是回文数")



方法2:数字提取比较(类似C语言)


虽然Python中不常用这种方法,但为了与C语言的方法保持一致,我们也可以这样做:


python复制代码
 def is_palindrome_number(x):  
 
     # 排除非五位数和负数  
 
     if not 10000 <= x <= 99999:  
 
         return False  
 
       
 
     # 提取各个位  
 
     ten_thousand = x // 10000  
 
     thousand = (x // 1000) % 10  
 
     hundred = (x // 100) % 10  
 
     ten = (x // 10) % 10  
 
     one = x % 10  
 
       
 
     # 比较回文  
 
     return ten_thousand == one and thousand == ten  
 
   
 
 number = int(input("请输入一个五位数: "))  
 
 if is_palindrome_number(number):  
 
     print(f"{number} 是回文数")  
 
 else:  
 
     print(f"{number} 不是回文数")




这两种Python方法都可以实现题目要求,但通常第一种方法(使用字符串操作)在Python中更为常见和简洁。


image.png


相关文章
|
4月前
|
弹性计算 人工智能 JavaScript
阿里云+本地全平台部署OpenClaw(Clawdbot)|千问/Coding Plan API配置+避坑+常见问题全解
2026年,OpenClaw(原Clawdbot)凭借轻量化架构、全平台兼容与强大的大模型集成能力,成为搭建个人/企业级AI智能体的首选框架。阿里云提供官方认证的一键部署方案,支持轻量应用服务器、ECS云服务器等多种形态,实现云端稳定运行;本地则完美适配MacOS、Linux、Windows11三大系统,满足隐私部署与本地调试需求。阿里云千问大模型凭借本土化优势与稳定性能,是OpenClaw的首选模型;而阿里云百炼Coding Plan提供免费额度,成为零成本入门的优质选择。
638 0
|
前端开发 JavaScript 小程序
|
人工智能 弹性计算 API
再不玩通义 VACE 模型你就过时了!一个模型搞定所有视频任务
介绍通义的开源模型在 ecs 或 acs 场景如何一键部署和使用,如何解决不同视频生成场景的问题。
|
存储 缓存 安全
深入讲解 Java 并发编程核心原理与应用案例
本教程全面讲解Java并发编程,涵盖并发基础、线程安全、同步机制、并发工具类、线程池及实际应用案例,助你掌握多线程开发核心技术,提升程序性能与响应能力。
425 0
|
数据格式
Modbus协议详解:RTU帧与ASCII帧的差错校验
总的来说,RTU和ASCII各有优势,选择哪种方式取决于具体的应用需求。如果需要高效的数据传输和强大的错误检测能力,可能会选择RTU。如果需要易于理解的数据表示和简单的错误检测方式,可能会选择ASCII。
765 14
|
SQL 数据采集 关系型数据库
如何解决MySQL报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL?
如何解决MySQL报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL?
14793 2
|
机器学习/深度学习 算法
【软件设计师】通俗易懂的去了解算法的时间复杂度
【软件设计师】通俗易懂的去了解算法的时间复杂度
lombok的使用
本文介绍了Lombok库的基本使用方法和常用注解,通过示例代码展示了如何使用Lombok简化Java对象的创建、属性访问、日志记录等编码工作,使代码更加简洁。
lombok的使用
|
Java API 网络安全
Java 发送邮件示例
本示例展示了如何使用Java编程语言发送电子邮件。通过利用JavaMail API,这段代码实现了从配置SMTP服务器,设置邮件属性,到发送邮件的全过程,为开发者提供了实用的参考。
1166 12
|
Oracle 关系型数据库 MySQL

热门文章

最新文章