24h購物| | PChome| 登入
2009-05-31 06:26:19| 人氣1,515| 回應0 | 上一篇 | 下一篇

程式設計師的面試問題

推薦 0 收藏 0 轉貼0 訂閱站台

作法:邏輯的推理來加快速度

/**********************************************************/

#include<stdio.h>  
#include<stdlib.h>  
main()  
{  
 int E,F,O,R,T,Y,N,S,I,X;
 int temp[6]={0};
 for(Y=0;Y<10;Y++)
  for(N=0;N<10;N++)
   {
     if((2*N+Y)%10!=Y||N==Y) continue;
     temp[1]=(2*N+Y)/10;
     for(T=0;T<10;T++)
      {
       if(T==N||T==Y) continue;
        for(E=0;E<10;E++)
         {
           if((temp[1]+2*E+T)%10!=T||E==T||E==N||E==Y) continue;
           temp[2]=(temp[1]+2*E+T)/10;
           for(R=0;R<10;R++)
           {
            if(R==E||R==Y||R==N||R==T) continue;
            for(X=0;X<10;X++)
             {
              if((temp[2]+R+2*T)%10!=X||X==E||X==Y||X==N||X==T||X==R) continue;
              temp[3]=(temp[2]+R+2*T)/10;
              for(O=0;O<10;O++)
               {
                if(O==E||O==Y||O==N||O==T||O==R||O==X) continue;
                 I=(temp[3]+O)%10;
                 if(I==E||I==Y||I==N||I==T||I==R||I==X||I==O) continue;
                 temp[4]=(temp[3]+O)/10;
                 for(F=0;F<10;F++)
                  {
                     if(F==E||F==Y||F==N||F==T||F==R||F==X||F==O||F==I) continue;
                     S=temp[4]+F;
                     if(S==E||S==Y||S==N||S==T||S==R||S==X||S==O||S==I||S==F||S>9) continue;
                     else
                      printf("%d%d%d%d%d + %d%d%d + %d%d%d = %d%d%d%d%d\n",F,O,R,T,Y,T,E,N,T,E,N,S,I,X,T,Y);
                  }
               } 
             }
           } 
         }
      }
   }
  return 0;
}
 

台長: 來源不明
人氣(1,515) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:多元一次方程式
此分類上一篇:自守數

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文