小编Dar*_*ght的帖子

运行时错误:有符号整数溢出:2 * 2147483647 无法以“int”类型表示

我正在尝试运行以下代码:

 int across(vector<int> &nums, int l , int m, int h){
 
        
        int i = l, j = m +1;
        int count = 0;
        unsigned long long int n;
        unsigned long long int prev;
        
        while(i <= m && j <=h){
            n = 2* nums[j];
            prev = nums[i];
            if(prev > n){
                count += m - i +1;
                j++;
            }
            else{
                i++;
            }
        }
        
        return count;
    }
Run Code Online (Sandbox Code Playgroud)

nums 是一个从索引 l 到 m 以及从索引 m+1 到 h 排序的向量。我必须计算对(i,j)的数量,这样nums[i] > 2 * nums[j]

当其中一个元素为 …

c++ unsigned signed runtime-error runtime

3
推荐指数
1
解决办法
5192
查看次数

标签 统计

c++ ×1

runtime ×1

runtime-error ×1

signed ×1

unsigned ×1