Testing 极大数误差

Testing 极大数误差,testing,Testing,我很快就要参加一个性别测试。 我试图在代码中找到一个修改,通过使用LONG而不是INT来避免极端大的数字错误。。。但这并不奏效 有人试过使用Codibility演示测试并得到100分吗 我浏览了以前的帖子,但没有找到解决这个问题的方法 我的代码:复杂性O(N)。。。我还是得了94分 // you can also use includes for example: // #include <algorithm> #include<iostream> #include

我很快就要参加一个性别测试。 我试图在代码中找到一个修改,通过使用LONG而不是INT来避免极端大的数字错误。。。但这并不奏效

有人试过使用Codibility演示测试并得到100分吗

我浏览了以前的帖子,但没有找到解决这个问题的方法

我的代码:复杂性O(N)。。。我还是得了94分

   // you can also use includes for example:
// #include <algorithm>
#include<iostream>
#include<vector>
#include<math.h>

int equi ( const vector<int> &A ) {
if((int)A.size()==0)
    return -1;

long int sum_l = A[0];
long int total_sum =0;

for(int i =0; i<(int)A.size();i++){
    total_sum = total_sum + A[i];
    }

    int flag =0;
    total_sum = total_sum -A[0];

    if(total_sum == 0)
        return 0;

for(int i=1; i<(int)A.size()-1;i++){
    total_sum = total_sum - A[i];
    if(sum_l ==total_sum){
        flag=1;
        return i;
        }
    sum_l= sum_l + A[i];
    }
if(sum_l ==0)
    return (int)A.size()-1;

if(flag ==0)
    return -1;


}
//您还可以使用include,例如:
//#包括
#包括
#包括
#包括
内部均衡(常数向量&A){
如果((int)A.size()==0)
返回-1;
长整数和=A[0];
长整型总和=0;

对于(int i=0;i我使用了
long
,我没有问题。

我使用了
long
,我没有问题。

试试这个

    int left = A[0];
    int right = 0;

    for(int i: A){
        right += i;
    }
    right -= left;

    int diff = Math.abs(left - right);
    for (int i = 1; i < A.length-1; i++) {
        left += A[i];
        right -= A[i];
        int a = Math.abs(left - right);
        if(diff > a){
            diff = a;
        }
    }
    return diff;
int left=A[0];
int right=0;
对于(int i:A){
右+=i;
}
右-=左;
int diff=Math.abs(左-右);
for(int i=1;ia){
diff=a;
}
}
返回差;
试试这个

    int left = A[0];
    int right = 0;

    for(int i: A){
        right += i;
    }
    right -= left;

    int diff = Math.abs(left - right);
    for (int i = 1; i < A.length-1; i++) {
        left += A[i];
        right -= A[i];
        int a = Math.abs(left - right);
        if(diff > a){
            diff = a;
        }
    }
    return diff;
int left=A[0];
int right=0;
对于(int i:A){
右+=i;
}
右-=左;
int diff=Math.abs(左-右);
for(int i=1;ia){
diff=a;
}
}
返回差;

Opps我刚刚尝试了long long for sum\u l和total\u sum!错误得到了解决!!这个问题似乎离题了,因为它是关于一个打字错误。Opps我刚刚尝试了long long for sum\u l和total\u sum!错误得到了解决!!这个问题似乎离题了,因为它是关于一个打字错误。