有趣的数学之回文数

news2024/9/29 15:29:36

“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等,最有名的莫过于“上海自来水来自海上,人过大佛寺佛大过人 ”。你们知道吗,在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。

回文数有两种:同数回文数和对称回文数,本文以对称回文数为例。

对称回文数:这一类的回文数都有对称的特点,顺读倒读数字次序不变,如:101、12321、32123等。此类回文数的形式多位数的乘法里面的“镜反数”,又叫对称数。

有人发现现了一桩趣事:任何一个自然数与它的倒序数相加,所得的和再与和的倒序数相加,……如此反复进行下去,经过有限次步骤后,最后必定能得到一个回文数。这必定是废力废时间的,但在电子计算机时代,只需编程就可实现回文数的计算。

下面给定一个题目,我们尝试使用两种算法完成计算。

假设输入一个整数n,如果n为回文数,则输出n,如果n不是,则输出离n最近的回文数。

使用Javascript实现:

var n=parseInt(prompt("请输入一个整数:"));
var isPalindrome=function(num){
 var str=num.toString();
 var len=str.length;
 for(var i=0;i<len/2;i++){
   if(str[i]!==str[len-i-1]){
     return false;
   }}
return true;};
if(isPalindrome(n)){
  console.log(n)
}else{
  var i=0;
  while(true){
  if(isPalindrome(n-i)){
  console.log(n-i);
     break;
         }
  if(isPalindrome(n+i)){
   console.log(n+i);
     break;
         }
  i++;}}

运行结果如下:

 使用Python实现计算:

n = int(input("请输入一个整数n:"))

# 判断是否为回文数
def is_palindrome(num):
    return str(num) == str(num)[::-1]

# 如果n是回文数,直接输出n
if is_palindrome(n):
    print(n)
else:
    i=0
    # 从n开始往上找最近的回文数
    while not is_palindrome(n):
        if is_palindrome(n-i):
            print(n-i)
            break
    # 从n开始往下找最近的回文数
        if is_palindrome(n+i):
            print(n+i)
            break
        i+=1
  • 代码思路:
  • 1. 输入一个整数n。
  • 2. 定义一个函数is_palindrome(num),用于判断一个数是否为回文数。将整数转换为字符串,然后判断字符串是否与其反转后的字符串相等。
  • 3. 如果n是回文数,直接输出n。
  • 4. 如果n不是回文数,从n开始往上和往下找最近的回文数,直到找到为止。
  • 5. 输出最近的回文数。

运行结果如下:

 

感谢关注哦,记得点赞呦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

30多份软件测试报告模板,如何写一份优秀测试报告模板流程

相信很多做软件测试的小伙伴在软件测试后期&#xff0c;都为软件测试报告总结花费了很多的精力&#xff0c;那么如何做好软件测试报告呢&#xff1f;一份优秀的测试报告又包含哪些内容呢&#xff1f; 测试报告的核心要素 一、测试结论 从测试工程师的专业角度分析&#xff0…

pytorch进阶学习(四):使用不同分类模型进行数据训练(alexnet、resnet、vgg等)

课程资源&#xff1a;5、帮各位写好了十多个分类模型&#xff0c;直接运行即可【小学生都会的Pytorch】_哔哩哔哩_bilibili 目录 一、项目介绍 1. 数据集准备 2. 运行CreateDataset.py 3. 运行TrainModal.py 4. 如何切换显卡型号 二、代码 1. CreateDataset.py 2.Train…

如何基于ChatGPT+Avatar搭建24小时无人直播间

0 前言 最近朋友圈以及身边很多朋友都在研究GPT开发&#xff0c;做了各种各样的小工具小Demo&#xff0c;AI工具用起来是真的香&#xff01;在他们的影响下&#xff0c;我也继续捣鼓GPT Demo&#xff0c;希望更多的开发者加入一起多多交流。 上一篇结合即时通 IM SDK捣鼓了一个…

因为这三个面试题,我与字节offer失之交臂

我一个朋友挑战3个月入职字节&#xff0c;一路过关斩将直到终面&#xff0c;着实把我惊了一把&#xff0c;可惜的是&#xff0c;他倒在了最后三个面试题上。 我很讶异&#xff0c;前面不是打得很好吗&#xff1f;怎么会在最后几题上犯错误呢&#xff1f; 朋友说&#xff1a;别…

电瓶隔离器工作原理与发展简史

电瓶隔离器(Battery Isolators)工作原理与发展简史 电池隔离器(英文&#xff1a;Battery Isolators)&#xff0c;又叫双电池隔离器、双电瓶隔离器、双电瓶保护器&#xff0c;还有叫双电池分离器的。 电瓶隔离器其实并没有真正的隔离&#xff0c;负极是始终连在一起的。房车、…

拓展系统命令

文章目录拓展系统命令使用方式拓展系统命令快速运行方法命令 - ZFASTRUN安全运行方法命令 - ZFASTSAFERUN快速运行Query方法命令 - ZFASTQUERY安全运行Query方法 命令 - ZSAFEQUARY防止调试时误将数据提交命令 - ZTRN在Terminal执行SQL语句命令 - ZSQL安全Global命令 - ZSAFEKI…

动态内存管理【上篇】

文章目录⚙️1.为什么存在动态内存分配⚙️2.动态内存函数的介绍&#x1f4ec;2.1. malloc函数&#x1f4ec;2.2. free函数&#x1f4ec;2.3. calloc函数&#x1f4ec;2.4. realloc函数⚙️3.常见的动态内存错误&#x1f512;3.1.对NULL指针的解引用操作&#x1f512;3.2.对动态…

二叉树(OJ)

单值二叉树&#xff08;力扣&#xff09; ---------------------------------------------------哆啦A梦的任意门------------------------------------------------------- 我们来看一下题目的具体要求&#xff1a; 既然我们都学了二叉树了&#xff0c;我们就应该学会如何去…

笔记:Java关于轻量级锁与重量级锁之间的问答

问题&#xff1a;如果在轻量级锁状态下出现锁竞争&#xff0c;不一定会直接升级为重量级锁&#xff0c;而是会先尝试自旋获取锁&#xff0c;那么有a b两个线程竞争锁&#xff0c;a成功获取锁了&#xff0c;b就一定失败&#xff0c;那么轻量级锁就一定升级为重量级锁&#xff0c…

基于Bazel + SQLFluff实现SQL lint

背景SQL进行版本化控制后&#xff0c;我们希望为SQL加入lint步骤。这样做的好处是我们可以在真正执行SQL前发现问题。本文中&#xff0c;我们通过Bazel执行SQLFluff[1]以实现SQL的lint。SQLFluff是一款使用Python语言使用的&#xff0c;支持SQL多方言的SQL lint工具。它的特点是…

设计模式-创建型模式之单例模式

6.单例模式6.1. 模式动机对于系统中的某些类来说&#xff0c;只有一个实例很重要&#xff0c;例如&#xff0c;一个系统中可以存在多个打印任务&#xff0c;但是只能有一个正在工作的任务&#xff1b;一个系统只能有一个窗口管理器或文件系统&#xff1b;一个系统只能有一个计时…

360安全卫士退出企业安全云模式

360安全卫士退出企业安全云模式前言360企业安全云关闭企业安全云提醒退出企业安全云模式前言 360安全卫士推出了企业安全云&#xff0c;并会给个人版用户进行推送&#xff0c;虽然可以关闭&#xff0c;但有可能会不小心升级为企业安全云&#xff0c;用户可能并不不习惯&#x…

2023铜鼓半马5月14日开跑,4月18日启动报名!

长寿铜鼓&#xff0c;康养胜地&#xff01;众翼电气2023铜鼓半程马拉松暨英雄马系列赛&#xff08;铜鼓站&#xff09;新闻发布会今日召开&#xff0c;铜鼓县委常委、宣传部部长熊涛&#xff0c;铜鼓县教育体育局党委书记、局长孙桃基&#xff0c;铜鼓县文广新旅局党组书记、局…

SpringBoot API 接口防刷

SpringBoot API 接口防刷接口防刷接口防刷原理代码实现RequestLimit 注解RequestLimitIntercept 拦截器WebMvcConfig配置类Controller控制层验证接口防刷 接口防刷: 顾名思义&#xff0c;想让某个接口某个人在某段时间内只能请求N次。 在项目中比较常见的问题也有&#xff0c;…

【Python】Python程序中使用request库连接外国网站的方法

确认你的socks端口&#xff1a; 然后程序可以这么写&#xff1a; import requests import socks import socket# 创建 SOCKS5 代理连接 socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 10808) socket.socket socks.socksocket# 发送请求 response request…

Java高级特性 - 多线程基础(2)常用函数【第1关:线程的状态与调度 第2关:常用函数(一)第3关:常用函数(二)】

目录 第1关&#xff1a;线程的状态与调度 第2关&#xff1a;常用函数&#xff08;一&#xff09; 第3关&#xff1a;常用函数&#xff08;二&#xff09; 第1关&#xff1a;线程的状态与调度 相关知识 为了完成本关你需要掌握&#xff1a; 1.线程的状态与调度&#xff1b…

Linux内核中常用的数据结构和算法

文章目录链表红黑树无锁环形缓冲区Linux内核代码中广泛使用了数据结构和算法&#xff0c;其中最常用的两个是链表和红黑树。 链表 Linux内核代码大量使用了链表这种数据结构。链表是在解决数组不能动态扩展这个缺陷而产生的一种数据结构。链表所包含的元素可以动态创建并插入和…

APP自动化测试(14)-利用xpath定位元素

一、元素定位的困难 定位元素时有时无法准确定位到我们想要的元素&#xff0c;存在如下几种情况 1、通过一个条件无法准确定位到元素&#xff0c;需要进行条件组合 2、某元素无法唯一定位到&#xff0c;但是同级的其他元素可以唯一定位 3、某元素的属性无论如何组合都无法唯…

训练机器学习模型,可使用 Sklearn 提供的 16 个数据集 【下篇】

数据是机器学习算法的动力&#xff0c;scikit-learn或sklearn提供了高质量的数据集&#xff0c;被研究人员、从业人员和爱好者广泛使用。Scikit-learn&#xff08;sklearn&#xff09;是一个建立在SciPy之上的机器学习的Python模块。它的独特之处在于其拥有大量的算法、十分易用…

AOP使用场景记录总结(缓慢补充更新中)

测试项目结构: 目前是测试两个日志记录和 代码的性能测试 后面如果有其他的应用场景了在添加.其实一中就包括了二,但是没事,多练一遍 1. 日志记录 比如说对service层中的所有增加,删除,修改方法添加日志, 记录内容包括操作的时间 操作的方法, 方法的参数, 方法所在的类, 方法…