zoukankan      html  css  js  c++  java
  • 2015年蓝桥杯省赛B组第3题--三羊献瑞



    三羊献瑞


    观察下面的加法算式:


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


    (如果有对齐问题,可以参看【图1.jpg】)


    其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。


    请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

    #include<stdio.h>
    #include<string.h>
    #include<ctype.h>
    #include<math.h>
    
    int a[10],b[10],c[10];
    void aa(int n)
    {
    	int i=0;
    	while(n>0){
    		a[i++]=n%10;
    		n/=10;
    	}
    }
    void bb(int n)
    {
    	int i=0;
    	while(n>0){
    		b[i++]=n%10;
    		n/=10;
    	}
    }
    int cc(int n)
    {
    	int i=0;
    	while(n>0){
    		c[i++]=n%10;
    		n/=10;
    	}
    	if(i!=5)
    		return 0;
    	else 
    		return 1;
    }
    int a1()
    {
    	int i,j;
    	for(i=0;i<4;i++){
    		for(j=0;j<5;j++){
    			if(i!=j&&j<4&&a[i]==a[j])
    				return 0;
    			if(i!=2||j!=0){
    				if(j<4&&a[i]==b[j])
    					return 0;
    			}
    			if(i==0||i==3){
    				if(j!=1&&j!=2){
    					if(a[i]==c[j])
    						return 0;
    				}
    			}
    		}
    	}
    	return 1;
    }
    int bb()
    {
    	int i,j;
    	for(i=0;i<4;i++){
    		for(j=0;j<5;j++){
    			if(j>i&&j<4&&b[i]==b[j])
    				return 0;
    			if(i==1&&b[i]==c[j])
    				return 0;
    		}
    	}
    	return 1;
    }
    int c1()
    {
    	int i,j;
    	for(i=0;i<5;i++){
    		for(j=i+1;j<5;j++){
    			if(c[i]==c[j])
    				return 0;
    		}
    	}
    }
    int main ()
    {
    	int i,j;
    	for(i=1000;i<=9999;i++){
    		for(j=1000;j<=9999;j++){
    			memset(c,0,sizeof(c));
    			
    			if(cc(i+j)){
    				memset(a,0,sizeof(a));
    				memset(b,0,sizeof(b));
    				aa(i);
    				bb(j);	
    				if(b[3]==c[4]&&b[2]==c[3]&&a[1]==c[2]&&a[2]==c[1]&&b[0]==a[2]&&a1()&&bb()&&c1()){
    					printf(" %d
    ",i);
    					printf("+%d
    ",j);
    					printf("-----------
    ");
    					printf("%d
    
    ",i+j);
    					
    				}
    			}else{
    				
    			}
    			
    		}
    	}
    	return 0;
    }


    最后答案为:1085

    代码运行结果如下:


  • 相关阅读:
    动态添加LInk的分析
    ASP.NET内置对象-网页转向的4中方法
    网页生命周期-动态添加控件
    网页生命周期-控件事件执行顺序
    网页生命周期-PageLoad事件
    HyperLink 控件
    ListBox控件
    OptionMenu选项菜单
    Menubutton按钮弹出菜单
    Menu-右键弹出菜单
  • 原文地址:https://www.cnblogs.com/lanaiwanqi/p/6684500.html
Copyright © 2011-2022 走看看