gaelim   4년 전

코드는 아래와같습니다. 문자배열을 이용하였고, 비트를 이용하여 계산하였습니다. 출력은 scanf의 long long oct 양식을 이용하였습니다. 로컬환경에서는 잘되는데 (계산기를 이용해서 비교해보아도 잘되었습니다.) 제출한 족족 틀렸습니다.

혹시 arr를 널 문자로 초기화 시켜주지 않았을까 싶어서 

scanf("%s", arr) 위에 for(i=0; i<1000001;i++) arr[i]='\0'; 도 수행해보았으나 역시 틀렸습니다. 무엇이 문제인지 잘모르겠습니다 . 도와주세요 ㅠ



#include <stdio.h>

char arr[1000001];
int main(){

  int i;
  long long int num=0;
  scanf("%s", arr);
  for(i=0;i<1000001;i++) if(arr[i]=='\0') break;

  int len=i-1;
  for (i=len;i>=0; i--)
    num=num|(arr[i]-'0')<<(len-i);

  printf("%llo\n", num);

  return 0;
}

gaelim   4년 전

아하 문제의 의도를 이해했습니다. 8진수로 변환하여도 최대값은 long long int 를 뛰어넘는군요 이런; 뻘질문이였네요

댓글을 작성하려면 로그인해야 합니다.