一个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


相关文章
|
存储 Java 测试技术
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
3355 0
|
8月前
|
存储 缓存 安全
深入讲解 Java 并发编程核心原理与应用案例
本教程全面讲解Java并发编程,涵盖并发基础、线程安全、同步机制、并发工具类、线程池及实际应用案例,助你掌握多线程开发核心技术,提升程序性能与响应能力。
314 0
|
8月前
|
安全 Java 网络安全
Java 实现 SMTP 协议调用的详细示例及实战指南 SMTP Java 调用示例
本文介绍了如何使用Java调用SMTP协议发送邮件,涵盖SMTP基本概念、JavaMail API配置、代码实现及注意事项,适合Java开发者快速掌握邮件发送功能集成。
856 0
|
机器学习/深度学习 存储 TensorFlow
【Python机器学习】卷积神经网络卷积层、池化层、Flatten层、批标准化层的讲解(图文解释)
【Python机器学习】卷积神经网络卷积层、池化层、Flatten层、批标准化层的讲解(图文解释)
952 0
|
11月前
|
人工智能 网络协议 API
开发效率翻倍!Apipost这些协议调试秘籍,从HTTP到金融报文全搞定
Apipost是一款强大的API研发管理工具,支持多种协议与数据格式,包括HTTP(s)、WebSocket、SSE、gRPC、TCP及金融协议(如ISO 8583、FIX)。它内置国密算法库,提供HTTP文件秒传、全局参数配置等实用功能。在SSE调试中,可轻松处理AI模型流式响应;WebSocket与Socket.IO实现高效实时通信;GraphQL支持可视化Query编写;TCP模块解决金融报文编码难题;gRPC则具备服务反射与流式调试能力。Apipost不仅简化了多协议切换的复杂性,还自动生成文档,显著提升开发效率,让开发者专注于核心业务逻辑。
|
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?
14592 2
|
机器学习/深度学习 算法
【软件设计师】通俗易懂的去了解算法的时间复杂度
【软件设计师】通俗易懂的去了解算法的时间复杂度
|
Java API 网络安全
Java 发送邮件示例
本示例展示了如何使用Java编程语言发送电子邮件。通过利用JavaMail API,这段代码实现了从配置SMTP服务器,设置邮件属性,到发送邮件的全过程,为开发者提供了实用的参考。
1023 12
|
SQL 安全 网络安全
数字堡垒之下:网络安全漏洞、加密技术与安全意识的博弈
在数字化时代的浪潮中,网络安全成了守护信息资产的重要关卡。本文将深入探讨网络安全面临的挑战,包括常见的网络漏洞、先进的加密技术以及提升个人和组织的安全意识。通过具体案例分析,揭示网络攻防之间的较量,并提出相应的防范策略。读者将了解到,尽管技术不断进步,但人类因素仍是安全链中的薄弱环节,因此培养良好的安全习惯至关重要。文章旨在唤起公众对网络安全重要性的认识,并鼓励采取积极措施以保护自己的信息安全。
160 28
|
Oracle 关系型数据库 MySQL

热门文章

最新文章