디시인사이드 갤러리

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

갤러리 본문 영역

심심해서 내보는 수학퀴즈의 정답을 찾는 프로글램

rntjr갤로그로 이동합니다. 2009.08.12 15:26:13
조회 152 추천 0 댓글 5




예전에 함 만들어본거야.. 

-------------------- crypt.txt  --------------------------------------
SYNAP + SOFT = WANTS + YOU
EMAIL= SPAM + SPAM + SPAM + SPAM + SPAM + SPAM
FORTY +TEN+ TEN= SIXTY
NUMBER = SQUARE + SQUARE + SQUARE + SQUARE
SEVENTY = FIVE + SEVEN + ELEVEN + TWELVE + FIFTEEN + TWENTY
MANET + MATISSE + MIRO + MONET + RENOIR = ARTISTS
SIX+SIX+SIX = NINE + NINE
ABCDE*F=GGGGGG
ADAM+AND+EVE=MOVED
FIVE+FIVE+NINE+ELEVEN=THIRTY
CROSS+ROADS=DANGER
USE + LESS = KIDDY
BILL + WILLIAM + MONICA = CLINTON
GREEN + ORANGE = COLORS
CEZANNE + MANET + MATISSE = ARTISTS
OLD+SALT+TOLD+TALL=TALES
COFFEE + COFFEE + COFFEE = THEOREM
SEND * ME = EMAIL
POWER = YOUR + SHOW
ALLEN = K * JEON
SEND +MORE = MONEY
USA + USSR = PEACE

------------------------------------------------------------------


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



char strBuff[20];
int totalCount = 10;

void input_org_str(char *data);
void number_proc(char *data);
void remove_blank(char *readBuff);

int main( void )
{

   int i;
   int min=1000, max=0;
   int len;

   FILE *fp;
   char readBuff[1024];

   fp = fopen("crypt.txt", "r");

   while(fgets(readBuff, 1024, fp)){
      strBuff[0] = \'\\0\';
      readBuff[strlen(readBuff)-1] = \'\\0\';
      remove_blank(readBuff);
      input_org_str(readBuff);
      len = strlen(strBuff);
      printf("\'%s\' -> \'%s\', %d\\n", readBuff, strBuff, len);
      number_proc(readBuff);
      puts("");
      puts("");

   }

}


void remove_blank(char *readBuff)
{
   char *sp, *ep;
   sp = ep = readBuff;

   while(*ep){
      if(*ep == \' \'){
     ep++;
     continue;
      }else{
     *sp++ = *ep++;
      } /* if(*ep == \' \'){ */
   }
   *sp = \'\\0\';
  
}




void check_word(int *srcNum, int *testData, int len)
{
   register int i,j,k, tmp;
   int vtmp[50], next = 1;
   int leftV, rightV;
  
   tmp = leftV = rightV = 0;
  
   for(i=0,j=0;testData[i]>-110;i++){
      if(testData[i]<0){

     if(testData[i] == -1){
        vtmp[j++] = tmp*next;
        next = 1;
     }else if(testData[i] == -10){
        vtmp[j++] = tmp*next;
        next = -1;
     }
     else if(testData[i] == -100){
        for(k=0;k<j;k++){
           if(vtmp[k]<0) leftV *= (-(vtmp[k]));
           else leftV += vtmp[k];
        }
        if(next<0) leftV *= tmp;
        else leftV += tmp;
        next = 1;
        j=0;
     }
     tmp = 0;
      }else{
     if(tmp == 0 && srcNum[testData[i]] == 0) return ;
       
     tmp = tmp*10 + srcNum[testData[i]];
      }
   }

   for(k=0;k<j;k++){
      if(vtmp[k]<0) rightV *= (-(vtmp[k]));
      else rightV += vtmp[k];
   }
   if(next<0) rightV *= tmp;
   else rightV += tmp;


   /*
   if(!(totalCount++%5000)){
      for(j=0;testData[j]> -120;j++){
     if(testData[j]<0){
        if(testData[j] == -1) printf(" + ");
        else if(testData[j] == -10) printf(" * ");
        else if(testData[j] == -100) printf(" = ");
     }else{
        printf("%c", strBuff[testData[j]]);
     }
      }
      printf("  ---- ");
      for(i=0;i<len;i++) printf("%d,", srcNum[i]);
      puts("");
      for(j=0;testData[j]> -120;j++){
     if(testData[j]<0){
        if(testData[j] == -1) printf(" + ");
        else if(testData[j] == -10) printf(" * ");
        else if(testData[j] == -100) printf(" = ");
     }else{
        printf("%d", srcNum[testData[j]]);
     }
      }

      printf("  --> %d == %d\\n", leftV, rightV);
   }

    ********************************************************************** */
   if(leftV == rightV){
      for(j=0;testData[j]> -120;j++){
     if(testData[j]<0){
        if(testData[j] == -1) printf(" + ");
        else if(testData[j] == -10) printf(" * ");
        else if(testData[j] == -100) printf(" = ");
     }else{
        printf("%c", strBuff[testData[j]]);
     }
      }
      printf("  ---- ");
      for(i=0;i<len;i++) printf("%d,", srcNum[i]);
      puts("");
      for(j=0;testData[j]> -120;j++){
     if(testData[j]<0){
        if(testData[j] == -1) printf(" + ");
        else if(testData[j] == -10) printf(" * ");
        else if(testData[j] == -100) printf(" = ");
     }else{
        printf("%d", srcNum[testData[j]]);
     }
      }
      printf("  ==> %d == %d ------------- Ok..\\n", leftV, rightV);

   }

}


void number_proc(char *data)
{
   int len;
   int srcNum[20] = {0,};

   register int i,j;

   int testData[200];

   len = strlen(strBuff);
   {
      register char *p1, *p2;
      for(i=0,p1=data;*p1;p1++,i++){
     p2 = strBuff;
     if(!isalpha(*p1)){
        if(*p1 == \'+\') testData[i] = -1;
        else if(*p1 == \'*\')  testData[i] = -10;
        else if(*p1 == \'=\')  testData[i] = -100;
        else  testData[i] = -999;
     }
     while(*p2){
        if(*p1 == *p2){
           testData[i] = p2-strBuff;
           break;
        }
        p2++;
     }
      }    /* for(i=0,p1=data;*p1;p1++,i++){ */
      testData[i] = -9999;
   }
  

   printf("strBuff:%s, data:%s \\n--> testData:", strBuff, data);
   for(j=0;j<i;j++){
      printf("%d,", testData[j]);
   }
   puts("");


   for(srcNum[0]=1;srcNum[0]<10;srcNum[0]++){    /* 1 */
      for(srcNum[1]=0;srcNum[1]<10;srcNum[1]++){    /* 2 */
     if(srcNum[0] == srcNum[1]) continue;
     for(srcNum[2]=0;srcNum[2]<10;srcNum[2]++){    /* 3 */
        if(srcNum[0] == srcNum[2] || srcNum[1] == srcNum[2]) continue;
        for(srcNum[3]=0;srcNum[3]<10;srcNum[3]++){ /* 4 */
           if(srcNum[0] == srcNum[3] || srcNum[1] == srcNum[3] || srcNum[2] == srcNum[3]) continue;
           if(len == 4){
          check_word(srcNum, testData, len);
          continue;
           } /* if(len == 4){ */
           for(srcNum[4]=0;srcNum[4]<10;srcNum[4]++){ /* 5 */
          if(srcNum[0] == srcNum[4] || srcNum[1] == srcNum[4] || srcNum[2] == srcNum[4] || srcNum[3] == srcNum[4]) continue;
          if(len == 5){
             check_word(srcNum, testData, len);
             continue;
          } /* if(len == 4){ */
          for(srcNum[5]=0;srcNum[5]<10;srcNum[5]++){    /* 6 */
             if(srcNum[0] == srcNum[5] || srcNum[1] == srcNum[5] || srcNum[2] == srcNum[5] || srcNum[3] == srcNum[5] || srcNum[4] == srcNum[5]) continue;
             if(len == 6){
            check_word(srcNum, testData, len);
            continue;
             } /* if(len == 4){ */
             for(srcNum[6]=0;srcNum[6]<10;srcNum[6]++){ /* 7 */
            if(srcNum[0] == srcNum[6] || srcNum[1] == srcNum[6] || srcNum[2] == srcNum[6] || srcNum[3] == srcNum[6] || srcNum[4] == srcNum[6] || srcNum[5] == srcNum[6]) continue;
            if(len == 7){
               check_word(srcNum, testData, len);
               continue;
            } /* if(len == 4){ */
            for(srcNum[7]=0;srcNum[7]<10;srcNum[7]++){ /* 8 */
               if(srcNum[0] == srcNum[7] || srcNum[1] == srcNum[7] || srcNum[2] == srcNum[7] || srcNum[3] == srcNum[7] || srcNum[4] == srcNum[7]
                  || srcNum[5] == srcNum[7] || srcNum[6] == srcNum[7]) continue;
               if(len == 8){
                  check_word(srcNum, testData, len);
                  continue;
               } /* if(len == 4){ */
               for(srcNum[8]=0;srcNum[8]<10;srcNum[8]++){ /* 9 */
                  if(srcNum[0] == srcNum[8] || srcNum[1] == srcNum[8] || srcNum[2] == srcNum[8] || srcNum[3] == srcNum[8] || srcNum[4] == srcNum[8]
                 || srcNum[5] == srcNum[8] || srcNum[6] == srcNum[8] || srcNum[7] == srcNum[8]) continue;
                  if(len == 9){
                 check_word(srcNum, testData, len);
                 continue;
                  } /* if(len == 4){ */
                  for(srcNum[9]=0;srcNum[9]<10;srcNum[9]++){ /* 10 */
                 if(srcNum[0] == srcNum[9] || srcNum[1] == srcNum[9] || srcNum[2] == srcNum[9] || srcNum[3] == srcNum[9] || srcNum[4] == srcNum[9]
                    || srcNum[5] == srcNum[9] || srcNum[6] == srcNum[9] || srcNum[7] == srcNum[9] || srcNum[8] == srcNum[9]) continue;
                 if(len == 10){
                    check_word(srcNum, testData, len);
                    continue;
                 } /* if(len == 4){ */
                 for(srcNum[10]=0;srcNum[10]<10;srcNum[10]++){ /* 11 */
                    if(srcNum[0] == srcNum[10] || srcNum[1] == srcNum[10] || srcNum[2] == srcNum[10] || srcNum[3] == srcNum[10] || srcNum[4] == srcNum[10]
                       || srcNum[5] == srcNum[10] || srcNum[6] == srcNum[10] || srcNum[7] == srcNum[10] || srcNum[8] == srcNum[10] || srcNum[9] == srcNum[10]) continue;
                    check_word(srcNum, testData, len);
                 }                 
                  }
               }
            }
             }
          }
           }
        }
     }
      }
   } /* for */

   return;
  done:
   totalCount++;
   printf("  :::::::::  %d -> %s\\n", totalCount, data);
     
}



void input_org_str(char *data)
{
   char *p;
   char *dp;

   for(p=data;*p;p++){
      if(isalpha(*p)){
     for(dp=strBuff;*dp;dp++){
        if(*dp == *p) break;
     }

     if(*dp != *p){
        *dp++ = *p;
        *dp = \'\\0\';
     }
      }

   }

}




추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45283 65
2870600 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 18:33 13 0
2870599 요즘 날이더워 그런강 피곤해서 일찍 자게됨 ♥냥덩이♥갤로그로 이동합니다. 18:31 8 0
2870597 방화벽 지금 2주째 안 뚫어주는데 [10] 아스카영원히사랑해갤로그로 이동합니다. 18:17 43 0
2870595 퇴근하자 [4] 개멍청한유라갤로그로 이동합니다. 18:08 12 0
2870594 나는조현병이야 나는내향적이야 [5] 손발이시립디다갤로그로 이동합니다. 18:05 20 0
2870592 나이처먹고 피지컬은 떨어지는데 경험만 쌓여서 이거 저거 한번에 생각 [1] 프갤러(218.154) 17:36 25 0
2870590 프로펙트인가 지원해본 사람 있음? [1] ㅇㅇ(118.36) 17:16 19 0
2870589 정좌불능증 재현갤로그로 이동합니다. 17:10 13 0
2870587 그냥 나가긴 싫고 실업급여라도.. [1] ㅇㅇ(211.235) 17:07 14 0
2870585 와 근데 config 설정이 80여개 넘어가니까 수정하다 지치네 [3] ㅆㅇㅆ(124.216) 16:39 31 0
2870584 deepseek 정말 못쓰겠다 쓰고싶어도 뒷통수한방(1.213) 16:28 25 0
2870583 와 근데 거북목 존나 많구나 [2] 루도그담당(211.184) 16:27 36 0
2870582 파이썬 똥쓰레기네 ㅇㅇ(106.101) 16:21 38 0
2870581 이준떡하고 시진핑 딸하고 대학동문이누?? 뒷통수한방(1.213) 16:15 13 0
2870579 그럼 ai 기술이 발전할수록 ai는 말바꾸는게 일상 되니깐 유용할듯 ㅇㅂ [1] 뒷통수한방(1.213) 16:08 27 0
2870578 ai는 말바꾸면 안되는거아님??? [1] 뒷통수한방(1.213) 16:07 19 0
2870576 귀염은 타고나는것⭐+ [3] ♥냥덩이♥갤로그로 이동합니다. 15:02 45 0
2870575 css 프레임워크 배워서 써먹는데 오래걸릴까요 [2] 프갤러(211.245) 15:00 43 0
2870574 하이부와 프로미스 [1] ㅇㅇ(39.7) 14:48 41 0
2870573 짱깨폭염 ㅅㅂ [2] 뒷통수한방(1.213) 14:47 30 0
2870571 우리 행복하자 [8] 개멍청한유라갤로그로 이동합니다. 14:33 52 0
2870570 재밌는거 개발할거없냐 [2] 밀우갤로그로 이동합니다. 14:10 52 0
2870569 3년차 프리로 sm 400받는데 걍 ㅍㅌㅊ지? [7] ㅇㅇ갤로그로 이동합니다. 13:32 70 0
2870568 날씨 리재명 같네 나라가 망한다 망해;; [4] ♥냥덩이♥갤로그로 이동합니다. 13:32 40 0
2870567 위시캣같은데서 외주 받으려면 [3] 프갤러(124.54) 13:08 34 0
2870566 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 13:04 16 0
2870563 도메인 하나팠는데 http는 접속되고 https는 접속안되는 이유머냐 [2] 노갤러(106.102) 12:29 39 0
2870561 님들 AI 뭐 씀 [4] ㅇㅇ갤로그로 이동합니다. 12:11 79 0
2870560 50세 이상한남은 주1회 [6] 개멍청한유라갤로그로 이동합니다. 12:11 58 0
2870559 한남은 [7] 개멍청한유라갤로그로 이동합니다. 12:09 73 1
2870557 거북목 올려하나 어깨가 뻐근하네 [1] 루도그담당(211.184) 11:44 21 0
2870556 요새 주식 핫하다고 해서 오랜만에 계좌 다시 열어봤는데 [2] 프갤러(118.235) 11:37 50 1
2870554 ai는 기술이 발전하는거임?? [5] 뒷통수한방(1.213) 11:29 35 0
2870552 무능 재앙 리죄명 [1] ♥냥덩이♥갤로그로 이동합니다. 11:19 23 1
2870551 저번에 납품한거 품질 괜찮아서 딴 사람한테 납품했었는데 [2] ㅆㅇㅆ(124.216) 11:05 41 0
2870550 Ai 코드몽키 거르는법 [3] ♥냥덩이♥갤로그로 이동합니다. 11:04 80 0
2870549 드디어 1차 납품 끝났다 [1] ㅆㅇㅆ(124.216) 11:00 33 0
2870547 날씨가 타들어가는거 보면 7년전 전산모니터링 알바할떄 생각난다 [1] 프갤러(39.115) 10:51 48 0
2870546 그럼 대석열 외교참사로 망했지 살렸냐 [3] ㅆㅇㅆ찡갤로그로 이동합니다. 10:47 41 0
2870545 ㅆㅇㅆ(124.216) 대석열 외교참사덕에 망했노 07.08 10:27 ㅇㅇ(211.235) 10:44 31 4
2870544 외주장점이 납품한거 품질 괜찮으면 ㅆㅇㅆ찡갤로그로 이동합니다. 10:43 19 0
2870543 이번달 수익 200만 간당간당해보이노 [4] ㅆㅇㅆ(124.216) 10:28 56 0
2870542 봇찢더명 ♥냥덩이♥갤로그로 이동합니다. 10:22 22 0
2870540 웹서버로 홈페이지 만드니깐 존나 재밌다 [6] 프갤러(114.202) 10:16 58 0
2870539 납품은 잘만하는데 하 내 게임 [2] ㅆㅇㅆ(124.216) 10:12 32 0
2870538 게임쪽은 진심 끝내고싶은데 시간이 많이 부족해 ㅆㅇㅆ(124.216) 10:07 29 0
2870537 나도 프로젝트 끝내고싶다 ㅆㅇㅆ(124.216) 10:03 18 0
2870535 ㅆㅇㅆ가 반드시 봐야할 글이네 [2] 부드러운곰탱이갤로그로 이동합니다. 09:21 56 0
2870534 SI개발자의 기준아 뭐임? [2] ㅇㅇ(117.111) 09:20 50 0
뉴스 ‘워터밤 여신 권은비’ 볼륨감 드러내는 비키니 입고 화끈한 댄스로 무대 찢었다 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2