zoukankan      html  css  js  c++  java
  • [C/C++]福尔摩斯 ABCDE*?=EDCBA

    /*福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
    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; 
      } 
     }
    }
    


     

  • 相关阅读:
    LINUX系列:Shell命令
    java程序猿必须掌握的4种线程池
    JAVA编程:Lock线程锁
    Spring框架之IOC的基本配置
    浅谈Java中的内部类
    [XDFZDay2]NOIP模拟
    [XDFZ集训Day1]NOI2020模拟1
    CSP2019游记
    11.11-11.12 CSP模拟总结
    [BJOI2019]排兵布阵
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3049920.html
Copyright © 2011-2022 走看看