大猫不理人 2021-11-03 14:47 采纳率: 100%
浏览 46
已结题

能否解释下下面代码的思路,非常感谢!

题目:x为正整数,定义rev(x)是x在十进制下翻转得到的数(x无前导零),如rev(53)=35,rev(1200)=21。给定正整数n,求x+rev(x)=n的正整数解的个数。

img

  • 写回答

3条回答 默认 最新

  • 关注

    for循环你应该能明白,你应该是while那个地方不明白吧,解析如下:

    X =x;
    y=0;
    while(X)
    {
        y = 10*y +X%10;
        X/=10;
    }
    以X=53为例:
    X%10是获取X的个位数,比如53的个位数是3
    X/=10是让X除以10,比如53/10后的数是5
    
    y 初始值为0,第一次执行while时
    y = 10*y +X%10 = 0 + 3=3;
    X/=10 ;X = 5;
    第二次执行while
    y = 10*y +X%10 = 3*10 + 5 =35;
    X/=10 ;X =0;
    while结束,此时y=35,正好是X逆序后的数
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 11月3日

悬赏问题

  • ¥15 请教各位,Android加载数据问题,每次点击获取数据之后无法更新。
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错
  • ¥15 拓扑学,凸集,紧集。。