神奇算式 藍橋杯

2022-08-15 08:51:18 字數 1283 閱讀 6825

原創:神奇算式 - 藍橋杯

摘要:本題是2023年第五屆藍橋杯全國軟體大賽預賽a組第3題。

由4個不同的數字,組成的乙個乘法算式,它們的乘積仍然由這4個數字組成。

比如:

210 x 6 = 1260 

8 x 473 = 3784

27 x 81 = 2187

都符合要求。

如果滿足乘法交換律的算式算作同一種情況,那麼,包含上邊已列出的3種情況,一共有多少種滿足要求的算式。

請填寫該數字,通過瀏覽器提交答案,不要填寫多餘內容(例如:列出所有算式)。

這個問題的思路也是列舉法,列舉物件分別為積和那個較小的乘數。

還有兩個限制條件:

這些限制條件是使用乙個標記陣列實現的。

#include #include using namespace std;

int vis[10];

int bk[10];

int check(int x, int y)

vis[x % 10]--;

} while(x /= 10);

do vis[y % 10]--;

} while(y /= 10);

return 1;

}int check4(int x)

vis[x % 10]++;

} while(x /= 10);

return 1;

}int main(void)

memcpy(bk, vis, sizeof(bk));

for(int j = 1; j <= 98; j++)

int k = i / j;

if(j > k)

if(!check(j, k))

cout << j << " * " << k << " = " << i << endl;

cnt++;}}

cout << cnt << endl;

}

6 * 201 = 1206

6 * 210 = 1260

21 * 60 = 1260

15 * 93 = 1395

35 * 41 = 1435

3 * 501 = 1503

3 * 510 = 1530

30 * 51 = 1530

21 * 87 = 1827

27 * 81 = 2187

9 * 351 = 3159

8 * 473 = 3784

(全文完)

藍橋杯 神奇算式

由4個不同的數字,組成的乙個乘法算式,它們的乘積仍然由這4個數字組成。比如 6 x 210 1260 8 x 473 3784 27 x 81 2187 都符合要求。如果滿足乘法交換律的算式算作同一種情況,那麼,包含上邊已列出的3種情況,請輸出剩餘的滿足要求的算式且按照第乙個因數從小到大排列,第乙個...

藍橋杯 2014 神奇算式

由4個不同的數字,組成的乙個乘法算式,它們的乘積仍然由這4個數字組成。比如 210 x 6 1260 8 x 473 3784 27 x 81 2187 都符合要求。如果滿足乘法交換律的算式算作同一種情況,那麼,包含上邊已列出的3種情況,一共有多少種滿足要求的算式。請填寫該數字,通過瀏覽器提交答案,...

藍橋杯 神奇算式(C )

由4個不同的數字,組成的乙個乘法算式,它們的乘積仍然由這4個數字組成。比如 210 x 6 1260 8 x 473 3784 27 x 81 2187 都符合要求。如果滿足乘法交換律的算式算作同一種情況,那麼,包含上邊已列出的3種情況,一共有多少種滿足要求的算式。直接暴力然後再驗證。等式分兩位數相...