디시인사이드 갤러리

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

갤러리 본문 영역

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

rntjr갤로그로 이동합니다. 2009.08.12 15:26:13
조회 151 추천 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/06/30 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
271990 가을은 안올듯ㅡㅡ 三didas갤로그로 이동합니다. 11.09.14 53 0
271988 즐거운?! 연휴 후다 [1] 거칠게갤로그로 이동합니다. 11.09.14 32 0
271986 여기 델파이 php 하는 횽들 있나? [2] 11급갤로그로 이동합니다. 11.09.14 82 0
271985 마소 윈도우 8나오면 [2] Adelposs갤로그로 이동합니다. 11.09.14 96 0
271983 여러분 다 [2] y녀6디리(220.118) 11.09.14 70 0
271982 살다살다 이런 찰진일은 처음이다 [4] Adelposs갤로그로 이동합니다. 11.09.14 108 0
271981 윈도우8이과연 三didas갤로그로 이동합니다. 11.09.14 54 0
271980 하드웨어쪽으로 진로변경고민 [9] 三didas갤로그로 이동합니다. 11.09.14 117 0
271979 cobuntu안좋아서 지워버렸다;; [2] .3(124.137) 11.09.14 68 0
271978 리버싱 쪽으로 유명한 블로그 뭐가있을까? [6] Deanex갤로그로 이동합니다. 11.09.14 110 0
271976 님들하 윈도우즈 8 공개베타 떴음 [1] 우엠다(24.246) 11.09.14 109 0
271975 애플 블루투스 키보드하고 아이패드 같이 쓰는 횽 있음? [3] 분당살람갤로그로 이동합니다. 11.09.14 57 0
271974 근데 visual c++가 뭐잉? [1] ㅋㅋㅋㅋ(211.200) 11.09.14 60 0
271972 횽들 궁금한게 [2] 써니무한사랑갤로그로 이동합니다. 11.09.14 41 0
271971 아읔 씨빨! [1] CHALLENGER갤로그로 이동합니다. 11.09.14 39 0
271970 삼성 이번 태블릿pc 좀 지린다; [2] ㅇ.ㅇ(61.33) 11.09.14 106 0
271969 LiveRe 쓰는 횽 있어?? [조공 포함] [5] 미클갤로그로 이동합니다. 11.09.14 140 0
271968 횽들 프로그래머는 에헤헤헿갤로그로 이동합니다. 11.09.14 55 0
271966 프로그래밍에 대한 열정 ㅁㄴㄻㄹ갤로그로 이동합니다. 11.09.14 109 0
271965 마소 ㅎㄷㄷ... 꿀레(218.147) 11.09.14 52 0
271963 컴공다니는 대학생이 공부할것중에 가장 비중있는것좀 알려줘요 형들 +조공 [7] 라솔갤로그로 이동합니다. 11.09.14 273 0
271962 난 오늘 회사 가면 뒤졌다..진짜.. [4] 좋은아버지갤로그로 이동합니다. 11.09.14 194 0
271961 이거 어떻게 하는 거임? [5] T3ddyB34r갤로그로 이동합니다. 11.09.14 84 0
271960 숏코딩 해보고 있는데 [5] 통맥갤로그로 이동합니다. 11.09.14 104 0
271959 운영체제,컴퓨터구조... [5] stdlib.h갤로그로 이동합니다. 11.09.14 148 0
271957 지금 씨언어 배열 90도 돌리기 하는데 (이거바바 ㅇㅇ) [2] 로하로하알로하갤로그로 이동합니다. 11.09.14 127 0
271956 누가 디시에 올린 글이 생각난다 [1] Adelposs갤로그로 이동합니다. 11.09.14 53 0
271955 pg언어 배워봐야지 ㅎ1ㅎ1 [1] ♥♡정수정♡♥갤로그로 이동합니다. 11.09.14 88 0
271954 궁금해서요 형님들 ㅎㅎ [8] 군대(115.23) 11.09.14 89 0
271953 헠헠헠헠 나 지금 Adelposs갤로그로 이동합니다. 11.09.14 26 0
271952 시발 너희는 사랑이 뭐지아냐? [4] Adelposs갤로그로 이동합니다. 11.09.14 77 0
271951 아 형들 질문좀 [3] Adelposs갤로그로 이동합니다. 11.09.14 36 0
271950 3일정도 되는 분량의 프갤 글을 읽었는데 [1] 좋은아버지갤로그로 이동합니다. 11.09.14 63 0
271948 스마트폰용 VisualStudio2011 ver.1.21출시 [1] CHALLENGER갤로그로 이동합니다. 11.09.13 95 0
271947 태블릿PC로도 코딩질가능한가요? [8] 박구갤로그로 이동합니다. 11.09.13 174 0
271946 맨땅에 헤딩을 하라!! [2] CHALLENGER갤로그로 이동합니다. 11.09.13 68 0
271945 **메모장에서 예시 입력받는데 메모장 줄 모두 끝나면 종료하게 어케하남요 [6] 꼬꼬마(1.224) 11.09.13 68 0
271943 아 하루 시간이너무 짧아 [2] 오마이갓넬갤로그로 이동합니다. 11.09.13 101 0
271942 밥값 담배값정도는 줄테니까 잉여계의 1인자갤로그로 이동합니다. 11.09.13 54 0
271941 컴퓨터에서 읽어올 수 있는 고유값이 뭐뭐 있음? [21] ㅇㅇㅇ(121.144) 11.09.13 168 0
271940 윤성우 선생께서 이런말하셧는데 [6] 오마이갓넬갤로그로 이동합니다. 11.09.13 153 0
271938 좆대딩씨 잉여계의 1인자갤로그로 이동합니다. 11.09.13 70 0
271937 형님들 첫 구직하는데 [3] ㅁㅂㅈ(124.28) 11.09.13 96 0
271936 비베 사진 [8] 잉여계의 1인자갤로그로 이동합니다. 11.09.13 204 0
271935 비베로 간단한 비행기게임 제작해줄분있나요 [6] 잉여계의 1인자갤로그로 이동합니다. 11.09.13 125 0
271934 dd님 혹시 [1] T3ddyB34r갤로그로 이동합니다. 11.09.13 25 0
271933 와c++어렵내? 오마이갓넬갤로그로 이동합니다. 11.09.13 58 0
271931 내칭구가 어제 말해줬는데 자기친구가 직업군인이었는데. . 직업바꿔서 웹프 [13] (220.117) 11.09.13 184 0
271930 오라클에서 서비스를 하지않는다는 조건으로 무료설치하잖아 [4] 三didas갤로그로 이동합니다. 11.09.13 78 0
271929 한언어를 다배우고 난다음 [18] 박구갤로그로 이동합니다. 11.09.13 191 0
뉴스 박시은♥진태현, 암 수술 후 근황 전해...“예전 같지 않고 조금 힘드네요” 디시트렌드 07.05
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2