藍橋杯 2014 神奇算式

2021-10-07 02:29:30 字數 2314 閱讀 1803

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

比如:

210 x 6 = 1260

8 x 473 = 3784

27 x 81 = 2187

都符合要求。

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

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

————————————————

這題的題目要求:

1:4個不同的數字

2:由題目知,乘法算式主要有兩種情況:第一種,1位數乘3位數

第二種,2位數乘2位數

對於情況一:abcd=abcd這樣的形式

1位數的a,取值範圍為:0-9

3位數的bcd,取值範圍為有: b的取值範圍:1-9

c的取值範圍:0-9

d的取值範圍:0-9

這樣bcd組合起來的就能匹配 100-999這個範圍的所有三位數

對於情況二:abcd這樣的形式:

2位數的ab,取值範圍有: a的取值範圍:1-9

b的取值範圍:0-9

同理2位數的cd,取值範圍有: c的取值範圍:1-9

d的取值範圍:0-9

這樣ab或者cd組合起來就能匹配10-99這個範圍的所有二位數

且:滿足乘法交換律的算式算作同一種情況,那麼,

總情況=情況一+(情況二/2) 注:因為2位數*2位數會出現滿足乘法交換律的算式,所以要除以2

3:要判斷—》由4個不同的數字,組成的乙個乘法算式,它們的乘積仍然由這4個數字組成。

可以將轉化為字串再轉化為set(),用集合的判等就能判斷

萬物基於暴力法:

con_13=

0for a in

range(2

,10):

#因為1*三位數是不可能等於乙個四位數,所以a=1這種情況不存在

for b in

range(1

,10):

if b==a:

continue

#當出現相同的兩個數字的時候跳過此次迴圈。

for c in

range(0

,10):

if c==a or c==b:

continue

for d in

range(0

,10):

if d==a or d==a or d==c:

continue

sr1=

str(a)

+str

(b)+

str(c)

+str

(d)#這裡是等號前面的轉換為字串

sr2=

str(a*

int(

str(b)

+str

(c)+

str(d)))

#這裡是等號後面的轉換為

ifset

(sr1)

==set

(sr2)

:#利用set()判斷兩個是不是同一集合

con_13+=

1con_22=

0for a in

range(1

,10):

for b in

range(0

,10):

if b==a:

continue

for c in

range(1

,10):

if c==a or c==b:

continue

for d in

range(0

,10):

if d==a or d==a or d==c:

continue

sr1=

str(a)

+str

(b)+

str(c)

+str

(d)

sr2=

str(

int(

str(a)

+str

(b))

*int

(str

(c)+

str(d)))

ifset

(sr1)

==set

(sr2)

: con_22+=

1print

(con_13+con_22//2)

#con_13為情況一的,con_22為情況2的

藍橋杯 神奇算式

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

神奇算式 藍橋杯

原創 神奇算式 藍橋杯 摘要 本題是2014年第五屆藍橋杯全國軟體大賽預賽a組第3題。由4個不同的數字,組成的乙個乘法算式,它們的乘積仍然由這4個數字組成。比如 210 x 6 1260 8 x 473 3784 27 x 81 2187都符合要求。如果滿足乘法交換律的算式算作同一種情況,那麼,包含...

藍橋杯 神奇算式(C )

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