5 藍橋杯之顛倒的價牌

2021-10-02 09:33:22 字數 2037 閱讀 2261

小李的店裡專賣其它店中下架的樣品電視機,可稱為:樣品電視專賣店。

其標價都是4位數字(即千元不等)。

小李為了標價清晰、方便,使用了預製的類似數碼管的標價籤,只要用顏色筆塗數字就可以了(參見p1.jpg)。

這種價牌有個特點,對一些數字,倒過來看也是合理的數字。如:1 2 5 6 8 9 0 都可以。這樣一來,如果牌子掛倒了,有可能完全變成了另乙個**,比如:1958 倒著掛就是:8561,差了幾千元啊!!

當然,多數情況不能倒讀,比如,1110 就不能倒過來,因為0不能作為開始數字。

有一天,悲劇終於發生了。某個店員不小心把店裡的某兩個**牌給掛倒了。並且這兩個**牌的電視機都賣出去了!

慶幸的是**出入不大,其中乙個價牌賠了2百多,另乙個價牌卻賺了8百多,綜合起來,反而多賺了558元。

請根據這些資訊計算:賠錢的那個價牌正確的**應該是多少?

答案是乙個4位的整數,請通過瀏覽器直接提交該數字。

注意:不要提交解答過程,或其它輔助說明類的內容。

//顛倒的價牌

#include

#include

using

namespace std;

intmain()

;int les =0;

int mor =0;

// 儲存的是相減的兩數之差的數 ,即存的是差

int less[

9999];

int more[

9999];

// 儲存的是滿足條件的兩種原來的數

int bfless[

9999];

int bfmore[

9999];

int sum,rsum,subles,submor;

// 最後一位跟第一位都不能是0

for(

int i=

0;i<

6;i++

)for

(int j=

0;j<

7;j++

)for

(int k=

0;k<

7;k++

)for

(int l=

0;l<

6;l++

)// 因為賺了800多,所以 後來的**高 if(

(rsum-sum)

<

900&&

(rsum-sum)

>

800)

}for

(int i=

0;i)for

(int j=

0;j(more[j]

-less[i]

==558

)return0;

}

由題意可知,只有數字1,2,5,6,8,9,0 才可以滿足條件,即被顛倒了也不會輕易發現出來,其餘數字不能被顛倒

組成的**,第一位跟最後一位一定不可能是0,第一位是0的話,不符合千元不等,最後一位如果是0的話顛倒過來的時候會被發現

利用乙個二維陣列儲存顛倒前和後的資料。int a[2][7]=;

但是要注意獲取顛倒的數字的同時,注意各個數字的順序不一樣!

sum = a[0][i]*1000+a[0][j]*100+a[0][k]*10+a[0][l];

rsum = a[1][l]*1000+a[1][k]*100+a[1][j]*10+a[1][i];

其實這題不難,暴力解法就可以

四位數,每位數都有7種可能,因為只有7種數字才是滿足的,還要特別注意0**不能放

獲取顛倒前後的數字,要同時注意顛倒後的數字是啥,以及四位數的順序會發生改變,即誰乘於1000,100,10的順序全都不一樣了

注意虧了200多,一定是原來的**高於被顛倒的**,賺了800多則一定是被顛倒的**高於原來的**

用les,mor自增來實現逐一增加對應的陣列的元素,後面再用一次是否等於558的時候就可以判斷兩個for迴圈的長度。

必要的時候可以用set容器避免重複冗餘(還可以按順序哦)

注意陣列命名的恰當性,以及寫的過程要必要的注釋,不然自己給自己繞暈了

顛倒的價牌 藍橋杯

這是2013年藍橋杯全國軟體大賽預賽a組 c c 組 第四題,為填空題,思路是列舉。該題的總體思路是列舉所有的 當然這個過程要排除不符合要求的解。倒過來看數字合理的數字有 1,2,5,6,8,9,0。而數字的值改變的只有 6變為9,9變為6。雖然最後的結果能夠得到好幾組解,但巧妙的是賠錢的那個加派的...

顛倒的價牌 藍橋杯

小李的店裡專賣其它店中下架的樣品電視機,可稱為 樣品電視專賣店。其標價都是4位數字 即千元不等 小李為了標價清晰 方便,使用了預製的類似數碼管的標價籤,只要用顏色筆塗數字就可以了 參見p1.jpg 這種價牌有個特點,對一些數字,倒過來看也是合理的數字。如 1 2 5 6 8 9 0 都可以。這樣一來...

藍橋杯 顛倒的價牌

小李的店裡專賣其它店中下架的樣品電視機,可稱為 樣品電視專賣店。其標價都是4位數字 即千元不等 小李為了標價清晰 方便,使用了預製的類似數碼管的標價籤,只要用顏色筆塗數字就可以了 這種價牌有個特點,對一些數字,倒過來看也是合理的數字。如 1 2 5 6 8 9 0 都可以。這樣一來,如果牌子掛倒了,...