zoukankan      html  css  js  c++  java
  • 算法(一) 枚举法

     
    枚举法,暴力破解,直接罗列各种情况。
     
    例1
    题目描述:
    古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
    ABCDE * ? = EDCBA
    他对华生说:“ABCDE 应该代表不同的数字,问号也代表某个数字!”
    华生:“我猜也是!”
    于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。
    把 ABCDE 所代表的数字写出来。
     
    #include <stdio.h>
    
    #include<string.h>
    
    int main()
    
    {
    
        int a,b,c,d,e,x;
    
        for(a=0; a<=9; a++)
    
            for(b=0; b<=9; b++)
    
                for(c=0; c<=9; c++)
    
                    for(d=0; d<=9; d++)
    
                        for(e=0; e<=9; e++)
    
                            for(x=0; x<=9; x++)
    
                                if(a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e)
    
                                    if((a*10000+b*1000+c*100+d*10+e)*x==e*10000+d*1000+c*100+b*10+a)
    
                                        printf("%d%d%d%d%d",a,b,c,d,e);
    
        return 0;
    
    }

    例二

    三羊生瑞气

    观察一下加法算式,一个汉字代表一个数字,求三羊献瑞代表的数字。

           祥 瑞 生 辉
      +   三 羊 献 瑞
    -------------------
       三 羊 生 瑞 气

    #include<stdio.h> 
    
    int main()
    {
        int a,b,c,d,f,g,h;
        int num1,num2,sum;
        for(a=2;a<=9;a++)
            for(b=0;b<=9;b++)
                for(c=0;c<=9;c++)
                    for(d=0;d<=9;d++)    
                        for(f=0;f<=9;f++)
                            for(g=0;g<=9;g++)
                                for(h=0;h<=9;h++)
                                    if(a!=b && a!=c && a!=d && a!=f && a!=g && a!=h
                                    && b!=c && b!=d && b!=f && b!= g &&b!=h
                                    && c!=d && c!=f && c!= g && c!=h
                                    && d!=f && d!=g &&d!=h
                                    && f!=g && f!=h
                                    && g!=h
                                    && a!=1 && b!=1 && c!=1 && d!=1 && f!=1 && g!=1 && h!=1)
                                    {
                                        num1=a*1000 + b*100 + c*10 + d;
                                        num2=1*1000 + f*100 + g*10 + b;
                                        sum=1*10000 + f*1000 + c*100 + b*10 + h;
                                        if(sum==(num1 + num2))
                                        {
                                            printf("1%d%d%d",f,g,b);
                                        }                        
    
                                    }
        return 0;
    } 
  • 相关阅读:
    接口测试小结
    UI自动化例子
    SQL Server 索引结构及其使用(二)
    SQL Server 索引结构及其使用(一)
    SQL Server 索引结构及其使用(四)
    SQL Server 索引结构及其使用(三)
    SQL Server 索引和视图
    Nginx 代理配置
    Java常见框架和工具
    MYSQL 存储过程 范例
  • 原文地址:https://www.cnblogs.com/p201821440039/p/10513965.html
Copyright © 2011-2022 走看看