2026-05-01整数的镜像距离。用go语言给定一个整数 n请计算它与其数字倒序后的数之间的差的绝对值。其中倒序后的数是把 n 的每一位数字反过来得到的新整数。请返回这个绝对值结果。1 n 1000000000。输入 n 25。输出 27。解释reverse(25) 52。因此答案为 abs(25 - 52) 27。题目来自力扣3783。一、分步详细执行过程第一步程序入口启动程序从main函数开始运行这是Go语言程序的执行起点。定义变量n并赋值为题目给定的输入值25。调用核心计算函数mirrorDistance(25)把 25 作为参数传入开始计算镜像距离。第二步执行 mirrorDistance 函数计算镜像距离这个函数的作用是求原数和反转数的差的绝对值执行步骤接收传入的参数原数n 25。调用reverse函数传入 25计算数字反转后的结果等待函数返回反转值。拿到反转结果后计算原数 - 反转数。判断计算结果是否小于0如果小于0取它的相反数也就是绝对值如果大于等于0直接返回结果。将最终的绝对值返回给main函数。第三步执行 reverse 函数数字反转核心这个函数的作用是把整数的每一位数字倒序排列生成新整数以输入 25 为例步骤初始化一个结果变量res赋值为0用来存储反转后的数字。进入循环循环条件是当前数字大于 0只要数字没处理完就一直循环。第一次循环当前数字25取数字的最后一位25 对 10 取余得到5拼接反转数字res 0*10 5res 变为5去掉最后一位25 除以 10取整数数字变为2。第二次循环当前数字2取最后一位2 对 10 取余得到2拼接反转数字res 5*10 2res 变为52去掉最后一位2 除以 10数字变为0。循环结束数字变为0不满足循环条件。将最终的反转结果52返回给mirrorDistance函数。第四步回到 mirrorDistance 函数完成计算计算差值原数 25 - 反转数 52 -27判断差值-27 小于 0因此取它的相反数27将结果 27 返回给main函数。第五步main 函数输出结果接收mirrorDistance函数返回的结果 27打印输出结果最终控制台显示27。二、时间复杂度 额外空间复杂度分析1. 总时间复杂度时间复杂度取决于数字反转函数 reverse的循环次数循环执行的次数 整数n的数字位数比如 25 是2位循环2次1234是4位循环4次。假设整数n的位数为k时间复杂度为O(k)。题目限定n ≤ 1000000000最大位数是10位循环最多执行10次属于常数级时间复杂度。2. 总额外空间复杂度程序运行过程中只创建了固定数量的变量res、diff、n等没有使用数组、切片、map等动态扩容的数据结构无论输入数字多大占用的额外内存空间都是固定不变的。因此总额外空间复杂度为O(1)常数级空间复杂度。总结完整流程启动程序→传入数值→反转数字→计算差值→取绝对值→输出结果时间复杂度O(k)k为数字的位数额外空间复杂度O(1)。Go完整代码如下packagemainimport(fmt)funcreverse(nint)int{res:0forn0{resres*10n%10n/10}returnres}funcmirrorDistance(nint)int{diff:n-reverse(n)ifdiff0{return-diff}returndiff}funcmain(){n:25result:mirrorDistance(n)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-defreverse(n:int)-int:res0whilen0:resres*10n%10n//10returnresdefmirror_distance(n:int)-int:diffn-reverse(n)return-diffifdiff0elsediffdefmain():n25resultmirror_distance(n)print(result)if__name____main__:main()C完整代码如下#includeiostreamusingnamespacestd;intreverse(intn){intres0;while(n0){resres*10n%10;n/10;}returnres;}intmirrorDistance(intn){intdiffn-reverse(n);if(diff0){return-diff;}returndiff;}intmain(){intn25;intresultmirrorDistance(n);coutresultendl;return0;}