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


相关文章
|
JSON 前端开发 Java
@RequestParam这个注解的作用
@RequestParam这个注解的作用
1010 0
|
Java Unix Linux
什么是阻塞IO和非阻塞IO
什么是阻塞IO和非阻塞IO
529 3
|
存储 Java 测试技术
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
2955 0
|
5月前
|
存储 缓存 安全
深入讲解 Java 并发编程核心原理与应用案例
本教程全面讲解Java并发编程,涵盖并发基础、线程安全、同步机制、并发工具类、线程池及实际应用案例,助你掌握多线程开发核心技术,提升程序性能与响应能力。
235 0
|
Java 索引
Java“ExceptionInInitializerError”解决
Java中遇到“ExceptionInInitializerError”错误通常是因为静态初始化块或静态变量初始化时发生异常。解决方法包括检查静态代码块中的逻辑错误、确保资源正确加载以及处理可能的空指针异常。
2139 8
|
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?
14319 2
|
编解码 前端开发 JavaScript
带您一步步构建一个基本的动态新闻网站,包括页面布局、样式设计以及交互效果的实现
【6月更文挑战第14天】构建动态新闻网站实战项目,涉及页面布局、样式设计和交互实现。首页采用顶部导航栏、轮播图和新闻列表布局;新闻列表页按分类显示新闻,详情页展示完整内容并可添加相关推荐和评论。设计注重色彩搭配、字体选择和布局间距,实现轮播图效果、导航栏交互和响应式设计,提升用户体验。该项目有助于锻炼HTML和CSS技能,理解网页设计实际应用。
599 1
|
Oracle 关系型数据库 MySQL
|
JSON API 数据格式
Python实战演练之Python实现一个简单的天气查询应用
Python实战演练之Python实现一个简单的天气查询应用
|
分布式计算 大数据 Java
MaxCompute产品使用问题之如何在生产环境中创建external volume,在datawork中执行
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
112 0