강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

게으른개발자님의 프로필 이미지
게으른개발자

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-O

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로 바꾸는 것이니까요.

감사합니다. 

 

감사합니다 !!

게으른개발자님의 프로필 이미지
게으른개발자

작성한 질문수

질문하기