2016-07-30 2 views
0

문제의 범위는 1 ~ 10^5 범위의 숫자입니다. 두 숫자 s와 f가 N보다 작 으면 < = f입니다. s ~ f의 자릿수가 7로 나눌 수 있는지 확인해야합니다.런타임 오류 - SIGABRT가 버그를 찾지 못했습니다.

#include <iostream> 
#include <string> 
using namespace std; 
int main() 
{ 
    string N; cin>>N; 
    long long T; cin>>T; 
    string sub=""; 
    long long i,s,f,val; 
    while(T--){ 
     cin>>s>>f; 
     s--; f--; 
     sub = ""; 
     for(i=s;i<=f;i++) 
       sub+=N[i]; 
     val = stoi(sub); 
     if(val%7==0) 
      cout<<"YES"<<endl; 
     else 
      cout<<"NO"<<endl; 
    } 
    return 0; 
} 

답변

0

"sigabrt하지만 내 코드는 모두 정확합니다."- 분명히 아닙니다.

디버깅의 첫 번째 규칙 : 이 쓴 코드에 버그가 있으며, 사용자의 직업은 그것을 찾는 것입니다.

입력에 따라 코드가 분명히 충돌합니다. 코드가 올바르다 고 주장하는 대신 디버깅을 고려할 것입니다.

+0

감사합니다. 언급 된 몇 가지 조건을 추가하겠습니다. 1 <= N <= 10^5, 1 <= s, f <= N –

관련 문제