1. 程式人生 > 實用技巧 >c++ 藍橋杯 馬虎的計算

c++ 藍橋杯 馬虎的計算

標題: 馬虎的算式
小明是個急性子,上小學的時候經常把老師寫在黑板上的題目抄錯了。

有一次,老師出的題目是:36 x 495 = ?

他卻給抄成了:396 x 45 = ?

但結果卻很戲劇性,他的答案竟然是對的!!

因為 36 * 495 = 396 * 45 = 17820

類似這樣的巧合情況可能還有很多,比如:27 * 594 = 297 * 54

假設 a b c d e 代表1~9不同的5個數字(注意是各不相同的數字,且不含0)

能滿足形如: ab * cde = adb * ce 這樣的算式一共有多少種呢?

請你利用計算機的優勢尋找所有的可能,並回答不同算式的種類數。

滿足乘法交換律的算式計為不同的種類,所以答案肯定是個偶數。

答案直接通過瀏覽器提交。
注意:只提交一個表示最終統計種類數的數字,不要提交解答過程或其它多餘的內容。

#include<iostream>
using namespace std;
int main()
{
	int count = 0;
	int a, b, c, d, e;
	for (a = 1; a <= 9; a++)
	{
		for (b = 1; b <= 9; b++)
		{
			if (b != a)
			{
				for (c = 1; c <= 9; c++)
				{
					if (c != a && c != b)
					{
						for (d = 1; d <= 9; d++)
						{
							if (d != a && d != b && d != c)
							{
								for (e = 1; e <= 9; e++)
								{
									if (e != a && e != b && e != c && e != d)
									{
										if ((a * 10 + b) * (c * 100 + d * 10 + e) == (a * 100 + d * 10 + b) * (c * 10 + e))
										{
											count++;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	cout << count << endl;
	return 0;
}

解題思路

五重迴圈解決問題。