[C/C++]福爾摩斯 ABCDE*?=EDCBA

來源:互聯網
上載者:User
/*福爾摩斯到某古堡探險,看到門上寫著一個奇怪的算式:ABCDE * ? = EDCBA他對華生說:“ABCDE應該代表不同的數字,問號也代表某個數字!”華生:“我猜也是!”於是,兩人沉默了好久,還是沒有算出合適的結果來。請你利用電腦的優勢,找到破解的答案。 把 ABCDE 所代表的數字寫出來。*/#include<iostream>using namespace std;void main(){ int k,t1 ,t; //t1 是 ? ,k is ABCDE,t is EDCBA //EDCBA is bigger than ABCDE, and 至少2倍 //ABCDE最小為 10234  for(k=10234;k<50000;k++){  //k=10234   bool flag[10]={0};   t=k;  t1=0;  while(t){   if(flag[t%10])   //flag中存著10個假值, t%10,取餘,flag[t%10]    break ;   flag[t%10] = true ;  //如果上步為假,沒有break,那麼把flag[t%10]設定為真,以排除有相同數字發生的情況   t1 = t1*10 + t%10 ;  //t1代表EDCBA   t /= 10 ;   } //遍曆出所有 不存在 有相同數位數  if( t==0 && t1%k==0){ //t==0,because ABCDE in flag的下標中,所以t==0;而t1%k==0,即t1/k=?,?為整數   cout<<k<<"*"<<t1/k<< "="<<t1<<endl;   }  }}

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.