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

Leetcode Q9回文数相同的代码适用于Java但不适用于C

端木宏盛
2023-03-14

我试图解决这个问题:https://leetcode.com/problems/palindrome-number/使用代码:

class Solution {
public:
    bool isPalindrome( x) {
        int rev = 0;
        int temp = x;
        while(temp != 0 && temp > 0){
            rev = rev* 10;
            rev = rev + temp%10;
            temp = temp/10;
        }
        if (rev == x){
            return true;
        }
        else{
            return false;
        }
    }
};

并在C中得到了这个错误:

Line 7: Char 22: runtime error: signed integer overflow: 998765432 * 10 cannot be represented in type 'int' (solution.cpp)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:16:22

但同样的代码在Java中运行得很好。为什么会这样?我该如何修复它?

共有1个答案

干稳
2023-03-14

您会得到这个错误,因为9,987,654,320太大,无法放入32位整数中。

解决方案:改用long。也就是说:

long long rev = 0;
long long temp = x;

此外,我建议明确指定参数x的类型。

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

  • 背景: 最近我一直在开发一个程序,该程序对输入数据文件(用户以完整路径或名称的形式给出,如果它位于程序创建的名为inputFiles的文件夹中)执行一些数据分析并吐出一堆输出数据文件(使用CSV)。 问题: 我遇到的问题是,当我运行时。jar在我的Windows机器上,它将创建3个文件夹(InputFiles、TempFiles和OutPutFiles),但当程序在Mac上时,GUI会启动,但不会

  • 我正在编写一个 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

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 我一直在做一些leetcode问题,但遇到了这个问题: 它几乎适用于所有情况,除了像12321或88888这样的数字 为什么不起作用 我是弱智吗?