inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1629_곱셈 문제의도 질문

281

RokiePlayer

작성한 질문수 10

0

오버플로우 안 발생시키려고 unsigned long long을 선언했고

10의 0승부터 m승까지 하나씩 더해서 나머지 연산자 쓰는 것과 같은 논리로

숫자의 크기에 무관하도록 string 클래스에 의존해서 1씩 추가했습니다.

그렇게 해서 stoi가 있으니 stoull이 있을 거 같아서 사용해보니

긱스포긱스 ide에 써보니 정답이 나오더라고요.

근데 백준에서는 런타임 out of range가 뜨더라고요.

제 코드의 문제를 모르겠습니다.

 

 

#include <bits/stdc++.h>

using namespace std;

typedef unsigned long long ull;

 

 

 

int main(){

ios_base::sync_with_stdio(false);

cin.tie(0);

cout.tie(0);

ull a;

 

string s ="";

while(cin>>a){

s.clear();

while(1){

s.append("1");

if(stoull(s)%a==0) break;

}

cout << s.size() << endl;

}

return 0;

}

C++ 코테 준비 같이 해요!

답변 1

0

큰돌

안녕하세요. RokiePlayer님ㅎㅎ

 

문제는 10의 몇승의 나머지를 뽑는 것이 아닙니다. 2의 몇승이 될 수도 있어요. 그래서 해당 코드는 아예 틀린 것이죠.

 

 

1. 그렇다고 해서 이게 10의 몇승의 나머지를 풀 수 있는 코드냐. 그런 것도 아닙니다. 이 문제의 범위를 볼까요? 무척 큰수가 나옵니다.

A가 10이고 B가 20만이라고 해봅시다. 이게 unsigned long long 으로 변환해서 나머지연산을 할 수 있는 수 인가요?

 

2. 이건 devc++에서도 out of range가 뜹니다. 만약 자신이 어떠한 로직을 작성했고 이게 틀릴 경우에는 "작은 수"를 기반으로 테스팅을 먼저 해야 합니다. 

#include <bits/stdc++.h>

using namespace std;

typedef unsigned long long ull;

int main()
{

   ios_base::sync_with_stdio(false);

   cin.tie(0);

   cout.tie(0);

   ull a;

   string s = "";
   for(int i = 0; i < 3; i++){
      cin >> a;
      s = "";
      int cnt = 0;
      while (cnt++ <= 8)
      {

         s += "1";
         cout << s << '\n';  
         if (stoi(s) % a == 0)break;
      }
      cout << s.size() << endl;
   }

   return 0;
}
/*
10 2 3
1
11
111
1111
11111
111111
1111111
11111111
111111111
9
1
11
111
1111
11111
111111
1111111
11111111
111111111
9
1
11
111
3
*/

제가 해당코드를 디버깅하기 위해서 몇개 코드를 고쳐봤는데요. 참고하시기 바립니다

 

 

또 질문사항있으시면 언제든 말씀 부탁드립니다. 

감사합니다. 

강사 큰돌 올림. 

1-E질문입니다!

0

529

2

3-L 틀린 부분 피드백 부탁드립니다.

0

833

2

1-A문제 순열재귀함수 질문입니다.

0

396

1

1-A 일곱난쟁이문제입니다

0

465

1

문제 풀 때 방향성에 대해

0

808

1

맥에서 vs code로 실행 관련 질문입니다

0

528

1

17071번 메모리 초과

0

388

1

1-C질문입니다!

0

427

2

2-B BFS 시간초과질문

0

636

2

1-O 13번 라인

0

445

1

6-J 놀이공원 문제 질문

0

386

1

구현관련 질문

0

487

1

강의 교안

0

321

1

실력을 더 올리고나서 강의를 보는 것이 맞을까요?

0

549

1

안녕하세요! 재귀함수에 관해서 질문드립니다

0

538

1

1-K

0

481

2

3-G번 질문있습니다.

1

478

3

3-C 실행 시간 질문드립니다.

0

500

1

4-A 문제 풀이 질문있습니다.

0

598

2

비트마스킹 연산자 "1의 보수" 영문 표기법

0

441

1

격자탐색 문제에서 BFS 시간복잡도 질문드립니다.

0

344

1

3-O go 함수 질문 드립니다.

1

450

2

4-A 출력 질문

0

306

1

1주차 1-O 질문드립니다

0

262

1