请我喝杯奶茶 2021-06-01 12:15 采纳率: 0%
浏览 24

为什么我用long long 13*1000000000任然溢出

小白  每天刷力扣  今天的题目  但是我用了longlong还是溢出了  我不知道为什么  看结果 好像仍然认为我用的int 问题出在什么地方呢 

 queries[i][1] = 13  queries[i][2]=1000000000

long long 2的63次方-1不该溢出啊  

求大佬指点

  • 写回答

1条回答

  • fortunely2 2023-03-18 10:47
    关注

    你仔细看提示,溢出的是int类型的13 * 1000000000。
    你将结果存放到long long,没有意义,因为溢出的是中间过程。正确的做法是,先提升计算的类型为long long,然后再做乘法。
    例如,

    long long num = static_cast<long long>(queries[i][1]) * static_cast<long long>(queries[i][2]);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 SpringMvc自定义Convert
  • ¥15 用python完成猜数字程序(初二学生)
  • ¥50 运行3d游戏会内存访问出错
  • ¥15 无法打开添加打印机 也装不了驱动,如何解决?
  • ¥15 【可追加酬金】求购php的saas多商户的CRM完整代码
  • ¥15 标题看内容,我需要能在octave中运行
  • ¥15 求缺陷检测三维点云数据集
  • ¥20 回答下面的分析题,复习题
  • ¥20 扫描出漏洞,需要升级jar包,但是找不到
  • ¥15 nx二次开发包容圆柱