#3391: 在自己的電腦上一切正常,但是提交后第一個測資點就算錯


kfc315 (Jammy)


我的程式碼如下:

 

#include<iostream>

#include<string>

#include <stdlib.h>

using namespace std;

 

long int calc(string str);

 

int main()

{

    int n;

    int i;

    string str;

    cin >> n;

    for (i = 0; i < n; i++)

    {

        cin.clear();

        cin.sync();

        getline(cin, str);

        cout << calc(str) << endl;

    }

    return 0;

}

 

long int calc(string str)

{

    long int sum = 0;

    int x;

    string substr;

    while(str.find(" + ") != -1)

    {

        substr = str.substr(0, str.find(" + "));

        x = atoi(substr.c_str());

        sum += x;

        str = str.substr(str.find(" + ") + 3);

    }

    x = atoi(str.c_str());

    sum += x;

    return sum;

}

 

經過第一個測資點時,正確答案為 6,但系統告訴我我的程式的計算結果為 0。

謝謝各位! 

 

#11740: Re:在自己的電腦上一切正常,但是提交后第一個測資點就算錯


tang891228 (tang891228)


 

雖然我沒發現是什麼問題

不過記得要用 long long int 才能算到 263-1

long int 和 int 是一樣的