디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

팩떡밥으로 니들 컴 성능 test 함 해보자..

rntjr갤로그로 이동합니다. 2010.11.16 21:30:08
조회 129 추천 0 댓글 3










난 


$ time ./a.out
\'2846259680917054518906413212119868890148051401702799230794179994274411340003764443772990786757784775815884062142317
52883004233994015351873905242116138271617481982419982759241828925978789812425312059465996259867065601615720360323979
263287367170557419759620...........................

real    1m5.390s
user    1m5.184s
sys     0m0.168s


이렇게 나왔다..


자 ..  니들은???   


아래 소스 컴파일


-------------------------------------------------------------------------------------------
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


#define MAX_BUFF_SIZE   50000000

void deohagi(char *, char *, char *);
void bbegi(char *, char *, char *);
void gobhagi(char *, char *, char *);
void nanugi(char *, char *, char *);
void fac(char *, char *);

void outfile(char *, char *, char *, char);


char *A;
char *B;
char *C;
char *D;
char *E;
char *F;
char *G;
char *H;
char *I;
char *J;
char *K;
char *L;
char *M;
char *N;




main()
{
  char *a;
  char *b;
  char c;
  char *result;
  int i;

  a = (char *)malloc(MAX_BUFF_SIZE);
  b = (char *)malloc(MAX_BUFF_SIZE);
  result = (char *)malloc(MAX_BUFF_SIZE);


  A = (char *)malloc(MAX_BUFF_SIZE);
  B = (char *)malloc(MAX_BUFF_SIZE);
  C = (char *)malloc(MAX_BUFF_SIZE);
  D = (char *)malloc(MAX_BUFF_SIZE);
  E = (char *)malloc(MAX_BUFF_SIZE);
  F = (char *)malloc(MAX_BUFF_SIZE);
  G = (char *)malloc(MAX_BUFF_SIZE);
  H = (char *)malloc(MAX_BUFF_SIZE);
  I = (char *)malloc(MAX_BUFF_SIZE);
  J = (char *)malloc(MAX_BUFF_SIZE);
  K = (char *)malloc(MAX_BUFF_SIZE);
  L = (char *)malloc(MAX_BUFF_SIZE);
  M = (char *)malloc(MAX_BUFF_SIZE);
  N = (char *)malloc(MAX_BUFF_SIZE);




 cont:

  for(i=0;i<MAX_BUFF_SIZE;i++){
    a[i] = b[i] = result[i] = \'\\0\';
  }



  strcpy(a, "10000");
  c = \'!\';
  goto rntjr;







  printf("input number a->");
  gets(a);

  if(strlen(a) > MAX_BUFF_SIZE){
    printf("input error 첨부터 다시..\\n");
    goto cont;
  }

  printf("연산방식 입력( + - * / ! )-> ");
  gets(result);
  c = result[0];
  strcpy(result, "0");
  if(c != \'+\' && c != \'-\' && c != \'*\' && c != \'/\' && c != \'!\'){
    printf("input error 첨부터 다시..\\n");
    goto cont;
  }

  if(c != \'!\'){
    printf("input number b->");
    gets(b);

    if(strlen(b) > MAX_BUFF_SIZE){
      printf("input error 첨부터 다시..\\n");
      goto cont;
    }
  }



 rntjr:
  //  printf("값을 입력해라.. ex)1000 + 1000) 연산은 + - * / !\\n");
  //  scanf("%s %c %s", a, &c, b);
  //  getchar(); // 마지막 엔터 읽어서 없에기..

  if(c != \'+\' && c != \'-\' && c != \'*\' && c != \'/\' && c != \'!\'){
    printf("input error 연산자, 첨부터 다시..\\n");
    goto cont;
  }
  if(strlen(a) > MAX_BUFF_SIZE){
    printf("input error A수 , 첨부터 다시..\\n");
    goto cont;
  }
  if(strlen(b) > MAX_BUFF_SIZE){
    printf("input error 뒷수,  첨부터 다시..\\n");
    goto cont;
  }

  if(c == \'+\'){
    deohagi(a, b, result);
    printf("\'%s\'\\n",result);
    //    outfile(a, b, result, c);
  }else if(c == \'-\'){
    bbegi(a, b, result);
    printf("\'%s\'\\n",result);
    //    outfile(a, b, result, c);
  }else if(c == \'*\'){
    gobhagi(a, b, result);
    printf("\'%s\'\\n",result);
    //    outfile(a, b, result, c);
  }else if(c == \'/\'){
    nanugi(a, b, result);
    printf("\'%s\'\\n",result);
    //    outfile(a, b, result, c);
  }else if(c == \'!\'){
    fac(a, result);
    printf("\'%s\'\\n",result);
    outfile(a, "", result, c);
  }

 KIN:
  printf(" \\n");
exit(0);
  gets(result);
  c = result[0];
  if(c == \'2\'){
    exit(0);
  }else if(c == \'1\'){
    goto cont;
  }else{
    printf("똑바로 입력해라\\n");
    goto KIN;
  }

}

// 0: 48, 9:57
void deohagi(char *a, char *b, char *result)
{
  int i;
  int lenA, lenB, lenC;
  int smallRst, smallPa;
  char *temp;

  temp = A;


  smallRst = smallPa = 0;

  lenA = strlen(a)-1;
  lenB = strlen(b)-1;
  lenC = 0;

  for(i=0;i<MAX_BUFF_SIZE;i++, lenA--, lenB--){
    if(lenA > -1 && lenB > -1){
      smallRst = (a[lenA] - 48) + (b[lenB] - 48) + smallPa;
      smallPa = smallRst>=10 ? 1 : 0 ;
      smallRst = smallRst % 10;
      temp[i] = smallRst + 48;
    }else{
      if(lenA > -1){
        smallRst = (a[lenA] - 48) + smallPa;
        smallPa = smallRst>=10 ? 1 : 0 ;
        smallRst = smallRst % 10;
        temp[i] = smallRst + 48;
      }else if(lenB > -1){
        smallRst = (b[lenB] - 48) + smallPa;
        smallPa = smallRst>=10 ? 1 : 0 ;
        smallRst = smallRst % 10;
        temp[i] = smallRst + 48;
      }else{
        temp[i] = smallPa + 48;
        temp[i+1] = \'\\0\';
        break;
      }
    }//  if(lenA > -1 && lenB > -1){
  }

  if(smallPa)
    i++;

  for(lenC=0;i>=0;i--,lenC++){
    result[lenC-1] = temp[i];
  }
  result[lenC] = \'\\0\';

}


void gobhagi(char *a, char *b, char *result)
{
  int i,j;
  int lenB;
  char *aa;
  char *bb;

  aa = B;
  bb = C;



  strcpy(aa, "0");
  strcpy(bb, a);
  lenB = strlen(b) -1;

  for(i=0;lenB > -1;i++, lenB--){
    j = b[lenB] - 48;

    for(;j>0;j--){              /*  */
      deohagi(aa, bb, result);
      strcpy(aa, result);
    }
    strcat(bb,"0");
  }

}


void bbegi(char *a, char *b, char *result)
{
  int i;
  int lenA, lenB, lenC;
  int smallRst, smallPa;

  int isMinus=0;
  char *temp;
  char *aa;
  char *bb;
  char *p, *q;


  aa = D;
  bb = E;
  temp = F;




  smallRst = smallPa = 0;

  lenA = strlen(a)-1;
  lenB = strlen(b)-1;
  lenC = 0;

  strcpy(aa, a);
  strcpy(bb, b);

  if(lenA < lenB){
    isMinus = 1;
  }else if(lenA == lenB){
    if(a[0] < b[0]){
      isMinus = 1;
    }
  }

 min:
  if(isMinus){
    strcpy(temp, aa);
    strcpy(aa, bb);
    strcpy(bb, temp);
    lenA = strlen(aa)-1;
    lenB = strlen(bb)-1;
  }

  for(i=0;i<MAX_BUFF_SIZE;i++, lenA--, lenB--){
    if(lenA > -1 && lenB > -1){
      smallRst = (aa[lenA] - 48) - (bb[lenB] - 48) - smallPa;
      smallPa = 0;
      if(smallRst < 0){
        smallRst += 10;
        smallPa = 1;
      }
      temp[i] = smallRst + 48;
    }else{
      if(lenA > -1){
        smallRst = (aa[lenA] - 48) - smallPa;
        smallPa = 0;
        if(smallRst < 0){
          smallRst += 10;
          smallPa = 1;
        }
        smallRst = smallRst % 10;
        temp[i] = smallRst + 48;
      }else if(lenB > -1){
        smallRst = (bb[lenB] - 48) - smallPa;
        smallPa = 0;
        if(smallRst < 0){
          smallRst += 10;
          smallPa = 1;
        }
        smallRst = smallRst % 10;
        temp[i] = smallRst + 48;
      }else{
        if(smallPa){
          smallPa = 0;
          isMinus = 1;
          goto min;
        }
        //      temp[i] = smallPa + 48 ;
        temp[i] = \'\\0\';
        break;
      }
    }//  if(lenA > -1 && lenB > -1){
  }

  lenC=0;
  if(isMinus){
    result[0] = \'-\';
    lenC += 2;
    i--;
  }

  for(;i>=0;i--){
    result[lenC-1] = temp[i];
    lenC++;
  }
  result[lenC] = \'\\0\';

  q = p = result;
  while(*p){
    if(*p == \'-\'){
      p++;
      q++;
    }else if(*p == \'0\'){
      p++;
    }else{
      strcpy(q, p);
      break;
    }
  }


}


void nanugi(char *a, char *b, char *result)
{
  char *aa;
  char *bb;
  char *cc;
  char *temp;
  char *temp1;

  aa = G;
  bb = H;
  cc = I;
  temp = J;
  temp1 = K;




  strcpy(aa, a);
  strcpy(bb, b);
  strcpy(cc, "0");

  while(1){
    memset(temp1, 0, MAX_BUFF_SIZE);
    memset(temp, 0, MAX_BUFF_SIZE);
    bbegi(aa, bb, temp);
    if(temp[0] != \'-\' ){
      if(temp[0] == \'0\'){
        deohagi(cc, "1", temp1);
        break;
      }

      strcpy(aa, temp);
      deohagi(cc, "1", temp1);
      strcpy(cc, temp1);
    }else{
      break;
    }
  }

  strcpy(result, temp[0] != \'-\' ? temp1 : cc);
  if(temp1[0] != \'0\' || temp1[0] != \'-\'){
    strcat(result, " 나머지 ");
    strcat(result, temp[0] == \'-\' ? aa : temp);
  }




}

void fac(char *a, char *result)
{
  char *aa;
  char *bb;
  char *rst;

  aa = L;
  bb = M;
  rst = N;


  strcpy(aa, a);
  strcpy(rst, a);
  do{
    bbegi(aa, "1", bb);
    /* printf("%s\\n", bb); */
    strcpy(aa,bb);
    gobhagi(rst, bb, result);
    strcpy(rst, result);




  }while(strcmp(bb, "2"));

}



void outfile(char *a, char *b, char *c, char d)
{
  FILE *fp;

  fp = fopen("infile.dat", "w");
  fprintf(fp,"%s %c %s", a, d, b);
  fclose(fp);

  fp = fopen("outfile.dat", "w");
  fprintf(fp,"%s", c);
  fclose(fp);
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 힘들게 성공한 만큼 절대 논란 안 만들 것 같은 스타는? 운영자 24/06/10 - -
230131 JAVA 책 추천좀 해주세요. [4] ㄷㄷ(114.200) 11.01.10 225 0
230130 피씨렛3.5 사용하는데요 친구한테실험해도 뜨질않습니다 [2] 또치·갤로그로 이동합니다. 11.01.10 899 0
230128 혹시 프갤러중에 44473 포트 아는사람있음? [9] d(211.205) 11.01.10 104 0
230127 ㅠ.ㅠ 횽아들 축하해줘 드디어 네이트온 설치했쪄요 [3] 이바보갤로그로 이동합니다. 11.01.10 142 0
230126 ↓ 님 이런식으로 안보이는 사람 자꾸 찾다간 [2] 왁스향고추(110.15) 11.01.10 83 0
230122 투명인간이_된_기분.png [2] 막창과치즈(110.15) 11.01.10 236 0
230121 C로 짠게 OBJ-C에서 다돌아간다는게 레알입니까 [4] --(119.71) 11.01.10 165 0
230119 fuck.exe 라는 프로세서 몬지아세요? 검색해도안나오는데 -0- [3] 두사늬(210.107) 11.01.10 257 0
230118 진로?? [1] ㅇㅇ(121.165) 11.01.10 148 0
230117 B-TEEN의 이미지는 이런게 아닐까? [3] 속결자갤로그로 이동합니다. 11.01.10 161 0
230116 램쳐먹는 실험 할것 [6] [성대아싸]갤로그로 이동합니다. 11.01.10 199 0
230113 컴터 질렀어요.... [9] [성대아싸]갤로그로 이동합니다. 11.01.10 203 0
230112 프로그래밍 처음시작하는데요 [2] 최궁금갤로그로 이동합니다. 11.01.10 116 0
230111 자료구조 수업의 중요성 [12] ㅇㅇ(121.137) 11.01.10 363 0
230109 또 배종옥 나온다... [3] 분당살람갤로그로 이동합니다. 11.01.10 91 0
230108 두시간 공부한 사람은 네시간 공부한 사람을? [2] 갤러리갤로그로 이동합니다. 11.01.10 143 0
230107 오늘 하루 정리및 남은 하루의 계획 [3] 꿀레갤로그로 이동합니다. 11.01.10 75 0
230106 횽들 자바스크립트 조언 좀... [17] jsp동생(222.112) 11.01.10 199 0
230105 싸게 테섭돌리려고 투반을 생각중인데 ㅁㄴㅊ(59.27) 11.01.10 80 0
230104 컴퓨터 쪽으로 관심이 있는데...... [5] John lemon갤로그로 이동합니다. 11.01.10 169 0
230103 영어 재밌다. [7] ㅁㄴㅇㄹ(121.130) 11.01.10 136 0
230102 XP 커스터마이징 관련 글 자삭했습니다. [2] 우분투짱(174.21) 11.01.10 85 0
230101 북한 보위부 전산망 해킹해봐 [1] 속결자갤로그로 이동합니다. 11.01.10 181 0
230100 ip주소 질문 좀 해도 돼? [7] 이모군(211.40) 11.01.10 155 0
230099 순수 해킹의 끝은 구속. ㅜㅜ [8] BTTTS!갤로그로 이동합니다. 11.01.10 337 0
230098 해킹학원 알려달라는 시방새들아 [1] 왁스맛치즈갤로그로 이동합니다. 11.01.10 258 0
230097 워매 인터넷 속도가 OS 영향을 이렇게 많이받는줄 몰랐네 [6] BTTTS!갤로그로 이동합니다. 11.01.10 147 0
230096 C++책 추천좀 부탁드립니다.. [1] team50(183.104) 11.01.10 129 0
230095 DNS서버의 IP주소가 바뀔때도 있나요? [3] 저격곰팡이갤로그로 이동합니다. 11.01.10 138 0
230094 프갤에 왜 윈도설치 글이 보이지 [4] 왁스맛치즈갤로그로 이동합니다. 11.01.10 99 0
230091 아 새로깔았으니까 이거설치해야지, 이것도, 이것도,,, [1] BTTTS!갤로그로 이동합니다. 11.01.10 64 0
230090 안녕 6번째로 만나는 윈도우 7! [2] BTTTS!갤로그로 이동합니다. 11.01.10 135 0
230088 5시 설치 시작,. 5시 47분 설치 완료,. [1] BTTTS!갤로그로 이동합니다. 11.01.10 73 0
230087 잡스 개새끼 해봐 [3] 유리한갤로그로 이동합니다. 11.01.10 186 0
230086 사업할려면 프로토타입정돈 스스로 만들능력이 되야지 [2] 속결자갤로그로 이동합니다. 11.01.10 129 0
230085 프겔에 찾아와서 사업하자고[만들어달라고] 하는 철부지 새끼들의 패턴 [14] 안티푸닭(112.216) 11.01.10 328 3
230083 ==TRUE를 써도되는데 !==를 굳이쓰는이유가뭐야? [10] ddd(61.41) 11.01.10 164 0
230082 쩌는형님들 학원추천좀해줘 [3] 학원;(211.212) 11.01.10 101 0
230081 월향뭐임 영광의비석갤로그로 이동합니다. 11.01.10 36 0
230080 Vnc 서버와 x 서버??? ㅎㅎㅎㅎㅎ(123.215) 11.01.10 49 0
230079 hal.dll 파일 날려버려도 복구가 가능? 영광의비석갤로그로 이동합니다. 11.01.10 96 0
230077 자바 개인지도 학원에서 다니는거 어떰?? [3] 형들(121.165) 11.01.10 99 0
230076 세상엔 여러가지 직업들이 있고 그에 따라 익혀야 할것도 참 많아 [6] DCode(125.7) 11.01.10 189 1
230074 IE 가 뜬 이유 [32] 개쉛기갤로그로 이동합니다. 11.01.10 325 0
230073 그만해... 키즈라엘갤로그로 이동합니다. 11.01.10 117 0
230072 한국만큼 IE에 쩔어있는 나라 또 잇음? [14] 갤러리갤로그로 이동합니다. 11.01.10 273 0
230070 정보처리기사 자격 응시 조건이 뭔가요? [2] 노이영(112.154) 11.01.10 410 0
230062 timt.h에서 asctime 관련 문의 [10] 두사늬(210.107) 11.01.10 96 0
230060 빨리 핵융합 발전이 실용화 되야 할텐데.. [2] 속결자갤로그로 이동합니다. 11.01.10 130 0
230058 병렬처리의 기본개념 [3] 개쉛기갤로그로 이동합니다. 11.01.10 158 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2