1. 程式人生 > >備戰藍橋杯(真題)第五屆第四題“讓我怎能過大年”

備戰藍橋杯(真題)第五屆第四題“讓我怎能過大年”

讓我怎能過大年



有如下的加法算式。其中每個漢字代表一個數字。
(如存在對齊問題,可參見【圖1.png】)

               年
             大年
           過大年
         能過大年
       怎能過大年
     我怎能過大年
+  讓我怎能過大年
------------------
   能能能能能能能


請填寫“讓我怎能過大年” 所代表的整數。
所有數字連在一起,中間不要空格。例如:"3125697"。當然,這個不是正確的答案。


注意:只填寫一個整數,不要填寫任何多餘的內容。

分析:直接暴力破解,做法有很多種,可以選取自己理解的一種解題模式。

直接程式碼演示:(不懂的可以下方評論)

public class D3 {

	public static void main(String[] args) {
	
              for(int a=0;a<=9;a++)
            	  for(int b=0;b<=9;b++)
            		  for(int c=0;c<=9;c++)
            			  for(int d=0;d<=9;d++)
            				  for(int e=0;e<=9;e++)
            					  for(int f=0;f<=9;f++)
            						  for(int g=0;g<=9;g++)
            						  {
            					int a1=a;		  
            					int a2=a+b*10;
            					int a3=a+b*10+c*100;
            					int a4=a+b*10+c*100+d*1000;
            					int a5=a+b*10+c*100+d*1000+e*10000;
            					int a6=a+b*10+c*100+d*1000+e*10000+f*100000;
            					int a7=a+b*10+c*100+d*1000+e*10000+f*100000+g*1000000;	
            					
            					int temp=a1+a2+a3+a4+a5+a6+a7;   //求和
            					
            					int nen=d*1000000+d*100000+d*10000+d*1000+d*100+d*10+d;   //能能能能能能能能
            					//這裡乘d*1111111   也是可以的
            					
            					if(temp==nen)
            					{
            						if(a!=b&&b!=c&&c!=d&&d!=e&&e!=f&&f!=g&&b!=d&&b!=e
            								&&b!=f&&b!=g&&c!=e&&c!=f&&c!=g&&d!=f&&d!=g         
            								//個位各不相同   
            								){
            							  System.out.println(a+"  "+b+"  "+ c+"   "+d+"   " +e+"   "+f+"   "+ g);  
            							  System.out.println("年   "+"    "+"大"+"      "+ " 過"+"        "+"能"+"        " +" 怎"+"       "+" 我"+"          "+"讓");  
            					}}
            					
            							  
            						  }				  
            							  
            							  
	}

}