반응형
문제
n명의 승객을 태우고 있는 3000번 버스는 강화에서부터 김포를 지나 신촌까지 가는 좌석버스이다. 3000번 버스는 버스 정류장마다 문을 연다. 그리고 정류장마다 타고 있는 승객의 수의 정확히 절반과 반 명(0.5명)의 승객이 내린다. 총 k개의 정류장에서 승객이 내렸고 마지막 정류장에서 승객이 없었으며 누구도 다치지 않았다면 맨 처음 타고있던 승객은 몇명인가.
입력
첫 번째 줄은 테스트 케이스의 수를 입력받는다. 각각의 테스트 케이스에는 정류장의 수 k를 입력받는다. 1 ≤ k ≤ 30.
출력
각각의 테스트 케이스는 한 줄에 처음 버스에 타고있던 승객의 수를 출력한다.
출처
ICPC > Regionals > Europe > Central European Regional Contest > CERC 2013 L번
- 문제의 오타를 찾은 사람: alice, jung2381187
- 문제를 번역한 사람: sgc109
솔직히 왜 틀렸는지 잘 모르겠는 수준의 문제인데
5년전의 나는 틀린 것 같다.
아래는 오류가 발생한 코드이다.
#include<cstdio>
#include<cmath>
int main(){
int tc,x;
scanf("%d",&tc);
while(tc--){
scanf("%d",&x);
float res = pow(2.0,x)-1;
printf("%.f\n",res);
}
}
아래는 정답코드이다.
#include<cstdio>
#include<cmath>
int main(){
int tc,x;
scanf("%d",&tc);
while(tc--){
scanf("%d",&x);
double res = pow(2.0,x)-1;
printf("%.f\n",res);
}
}
역시나 자료형의 범위에 의해서 틀린 판정을 받은 것은 너무나도 아쉽다
코딩 테스트를 준비하시는 분들은
문제를 꼼꼼히 읽고, 문제가 원하는 범위 내에서 코드가 동작이 가능한지 혹은 동작이 불가능한지 판단 후
제출해보는 연습을 꼭 해보시길 바라겠습니다.
이상 다이어릿 이었습니다.
반응형