当前位置: 首页 > 知识库问答 >
问题:

回文数字代码不适用于边缘情况

万博涛
2023-03-14

我一直在做一些leetcode问题,但遇到了这个问题:给定一个整数x,如果x是回文整数,则返回true。

它几乎适用于所有情况,除了像12321或88888这样的数字

为什么不起作用

我是弱智吗?

class Solution {
    public:
        bool isPalindrome(int x) {
            if(x < 0 || (x % 10 == 0 && x != 0))
                return false;
            
            int z = 0, p = 1; 
            while (x > z)
            {
                z = z * p + x % 10;
                x = x / 10;
                p = p * 10;
            }
            return x == z || x == z / 10;
    }
};

共有1个答案

强才捷
2023-03-14

这条线

                z = z * p + x % 10;

是错的。z应移位一位。不应在循环中更改移位大小。使用该行,在输入12321的循环之后,值将为x=12,z=1203。您会看到插入了额外的0。这是因为您使用了错误的班次大小。

线应为

                z = z * 10 + x % 10;
 类似资料:
  • 问题内容: 我的后退滑动功能有效,但仅在屏幕边缘有效。如何在屏幕上的任何地方工作? 问题答案: 苹果在这里说: InteractivePopGestureRecognizer 手势识别器负责将顶视图控制器从导航堆栈中弹出。(只读) @property(非原子,只读)UIGestureRecognizer * interactivePopGestureRecognizer 导航控制器将此手势识别器安

  • 我试图解决这个问题:https://leetcode.com/problems/palindrome-number/使用代码: 并在C中得到了这个错误: 但同样的代码在Java中运行得很好。为什么会这样?我该如何修复它?

  • 当我尝试在WSL2终端中打开VS代码时,如下所示: 我得到以下错误: 用sudo启动时: 我在Windows上的路径中添加了VS代码,并安装了WSL Remote 我正在致力于: Windows10Pro 10.0。19041 WSL 2 Ubuntu 20.04 LTS 代码1.47。一,

  • 因此,下面的代码适用于一个活动,但当我使用onCreateView将其添加到一个片段中时,应用程序就会崩溃 Fragment公共类步骤扩展Fragment{ 12-13 15:17:15.062 984-984/com.stephenh.daytrack.daytrack.daytrackstephenh E/AndroidRuntime:致命异常:主进程:com.stephenh.daytrac

  • 我正在编写一个 C# 应用程序来解码此字符串: "--W 3原文3 R hcn Rfd Gl tZ SI 6 I jAi L CJ w cm 9 k dW N 0 X 2 lk I jo iO D Q wM DMz MD气LC J 1 cm wi O iI if Sx 7 InN 0 Y XJ 0 X 3 Rp b WU iO iI 3 OS In by b 2 R 1 Y 3 Rfa WQ iO

  • 我在Android Studio和Flutter框架上遇到了一个问题。 重新安装了Android Studio。 无效缓存并重新启动。 重新下载flutter SDK 重新下载Dart SDK 我使用的是Android Studio的最新版本,Flutter和Dart。任何帮助都将不胜感激。