c++ 藍橋杯 馬虎的計算
阿新 • • 發佈:2021-01-20
標題: 馬虎的算式
小明是個急性子,上小學的時候經常把老師寫在黑板上的題目抄錯了。
有一次,老師出的題目是: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; }
解題思路
五重迴圈解決問題。