인프런 커뮤니티 질문&답변
absort
작성
·
469
0
안녕하세요. 선생님
저는 그냥 stoi 를 이용해서 풀었는데요. absort 에러가 나는데 원인을 잘 모르겠습니다..... 9901를 입력하면 에러가납니다. 제 생각은 stoi 함수에서 문자열숫자 12자리를 변환을 해주지 못해서 그런거같은데 어떻게 하면 제대로 돌릴수 있을까요?
#include<bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
string s, a;
unsigned long long t1, t2;
while (cin >> s) {
t1 = stoi(s);
a = "";
while (true) {
a += "1";
cout << "a = " << a << endl;
t2 = stoi(a);
if (t2 % t1 == 0) {
cout << "정답 a = "<<a << endl;
cout << a.size() << endl;
break;
}
}
}
}
답변 1
1
큰돌
지식공유자
안녕하세요. ㅎㅎ 해당 부분 코드 돌려봤는데요.
absort에러가 아니라
a = 11111111111
terminate called after throwing an instance of 'std::out_of_range'
아웃오브레인지 에러가 발생합니다. 이는 숫자 범위를 초과해서 발생하는 에러에요. stoi는 string을 int로 바꾸는 것이니까요.
감사합니다.






감사합니다 !!