해결된 질문
작성
·
536
0
선생님 안녕하세요
2-k 강의를 듣기 전 먼저 풀어보았는데 컴파일 에러가 나옵니다.
어느 부분이 잘못되었는지 몰라서 질문 드립니다.
답변 1
1
안녕하세요 승민님 ㅎㅎ
cnt[1000000001];
배열의 크기를 너무 크게 잡으셔서 에러가 나는 겁니다. 보통 10억짜리는 잘 안됩니다.
해당 부분 줄여서 테스팅 해보시겠어요? 이런식으로 말이죠.
(컴파일은 잘 됩니다.)
#include<bits/stdc++.h>
using namespace std;
int t, n, i, two, five, temp, cnt[100001];
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> t;
for(i = 1; i <= 1000000001; i++)
{
temp = i;
while(temp % 2 == 0){
temp /= 2;
two++;
}
while(temp % 5 == 0){
temp /= 5;
five++;
}
cnt[i] += min(two, five);
}
while(t--){
cin >> n;
cout << cnt[n] << '\n';
}
}
컴파일 에러가 나는데 어떤 에러인지 모를 때는 너무 많은 배열을 잡아서 그럴 때가 종종 있습니다.
감사합니다.