馬虎的算式

豬豬團發表於2020-10-31

第6天打卡
/*馬虎的算式
小明是個急性子,上小學的時候經常把老師寫在黑板上的題目抄錯了。
有一次,老師出的題目是:36 x 495 = ?
他卻給抄成了:396 x 45 = ?
但結果卻很戲劇性,他的答案竟然是對的!!
假設 a b c d e 代表1~9不同的5個數字(注意是各不相同的數字,且不含0)
能滿足形如: ab * cde = adb * ce 這樣的算式一共有多少種呢?
請你利用計算機的優勢尋找所有的可能,並回答不同算式的種類數。
滿足乘法交換律的算式計為不同的種類,所以答案肯定是個偶數。
因為 36 * 495 = 396 * 45 = 17820
類似這樣的巧合情況可能還有很多,比如:27 * 594 = 297 * 54
*/

#include<iostream>
using namespace std;
int main()
{
 int sum=0;
 for(int a=1;a<10;a++)
 {
  for(int b=1;b<10;b++)
  {
   for(int c=1;c<10;c++)
   {
    for(int d=1;d<10;d++)
    {
     for(int e=1;e<10;e++)
     {
      if((a!=b)&&(b!=c)&&(c!=d)&&(d!=e)&&(a!=c)&&(a!=d)&&(a!=e)&&(b!=d)&&(b!=e)&&(c!=e))
      {
       int x=a*10+b;
       int y=c*100+d*10+e;
       int z=a*100+d*10+b;
       int w=c*10+e;
       int m=x*y;
       int n=z*w;
       if(m==n)
       {
        sum++;
        //cout<<x<<"*"<<y<<"="<<z<<"*"<<w<<endl;
        
        //cout<<x<<"*"<<i<<"="<<y<<endl;
       }
     }
    }
   }
  }
 }
 cout<<sum<<endl;
 return 0;
} 
} 

在這裡插入圖片描述
結果好像和大家不一樣,但我也不知道哪錯了。
思路:迴圈遍歷。

相關文章