1212번 - 8진수 2진수
코드는 아래와 같이 작성하였고,
0인경우 014 인경우 444인경우 테스트케이스 잘 돌아가는 것 같은데
무엇이 문제인지 궁금합니다!ㅠㅠㅠㅠㅠㅠㅠㅠㅠ더이상 틀리고 싶지않습니다..ㅠㅠㅠㅠㅠㅠㅠ
#include <cstdio>
#include <cstring>
using namespace std;
char st[333335],number[8][4]={"000","001","010","011","100","101","110","111"};
char number1[8][4]={"","1","10","11","100","101","110","111"};
bool flag;
int main(){
scanf("%s",st);
int lens = strlen(st);
if(lens == 1 && st[0] == '0'){
printf("000\n");
return 0;
}
for(int i = 0; i < lens; i++){
int cnt = st[i]-'0';
if(i == 0 || (st[0]-'0' == 0 && !flag)) printf("%s",number1[cnt]);
else if(i > 0) printf("%s",number[cnt]);
if(st[0]-'0' == 0 && cnt >= 1) flag = true;
0은 0이라고 쓰지, 000이라고 보통 안 쓰듯이, 이 문제도 "평범하게 쓰기"를 원하는 겁니다.
앗!! 감사합니다 ㅠㅠ!!!!! 수정했습니다!!
댓글을 작성하려면 로그인해야 합니다.
dlfemd 6년 전
코드는 아래와 같이 작성하였고,
0인경우 014 인경우 444인경우 테스트케이스 잘 돌아가는 것 같은데
무엇이 문제인지 궁금합니다!ㅠㅠㅠㅠㅠㅠㅠㅠㅠ더이상 틀리고 싶지않습니다..ㅠㅠㅠㅠㅠㅠㅠ
#include <cstdio>
#include <cstring>
using namespace std;
char st[333335],number[8][4]={"000","001","010","011","100","101","110","111"};
char number1[8][4]={"","1","10","11","100","101","110","111"};
bool flag;
int main(){
scanf("%s",st);
int lens = strlen(st);
if(lens == 1 && st[0] == '0'){
printf("000\n");
return 0;
}
for(int i = 0; i < lens; i++){
int cnt = st[i]-'0';
if(i == 0 || (st[0]-'0' == 0 && !flag)) printf("%s",number1[cnt]);
else if(i > 0) printf("%s",number[cnt]);
if(st[0]-'0' == 0 && cnt >= 1) flag = true;
}
return 0;
}