C語言 藍橋杯 湊算式

2021-10-03 19:43:24 字數 1301 閱讀 5367

湊算式

b      def

a + --- + ------- = 10

c ghi

這個算式中ai代表19的數字,不同的字母代表不同的數字。

比如:6+8/3+952/714 就是一種解法,

5+3/1+972/486 是另一種解法。

這個算式一共有多少種解法?

注意:你提交應該是個整數,不要填寫任何多餘的內容或說明性文字。

其實在看到這個題的時候,我首先想到的是for迴圈暴力解法,因為是填空題嘛,就沒有時間和記憶體的要求。

1、for迴圈暴力法

#include

intmain()

}}}}

}}}}

}}}}

}}}printf

("%d"

,s);

return0;

}

~ - ~||額,好像是在發龜派氣功波||

2、遞迴回溯演算法

#include

int a=

;int sum=0;

voidf(

int x)

for(

int i=x;i<

9;i++)}

intmain()

嗯,這個看起來就要好很多了。

不過不管是用那乙個方法,再寫這個地方的時候if((bn+cm)/(cn)==10-a&&(bn+cm)%(cn)==0)一定把「/」的後面的c*n用括號括起來,否則就會和我一樣導致此題結果為0;然後糾結好久-_-||。

__ =_________________________________

剛剛看到乙個解法,雖然也是暴力for迴圈法,但是少了(bn+cm)%(c*n)==0的判斷條件

3、

#include

intmain()

}}}}

}}}}

}}printf

("%lf"

,count)

;return0;

}

額,雖然這個看起來也很。。。。。。但是我想把第乙個和這個做乙個比較。如果你把第乙個**中的(bn+cm)%(cn)==0判斷條件去掉,結果是完全不一樣的。

第三個**用的是double型的雙浮點數。而浮點運算時,由於精度的問題,涉及到了四捨五入。而強制型別轉換int的結果只保留整數部分。所以要加上(bn+cm)%(cn)==0判斷條件去判斷是不是整除。不過我想說這兩個結果差的也太。。。。-_-||

藍橋杯 湊算式

湊算式b def a 10 c ghi 如果顯示有問題,可以參見 圖1.jpg 這個算式中a i代表1 9的數字,不同的字母代表不同的數字。比如 6 8 3 952 714 就是一種解法,5 3 1 972 486 是另一種解法。這個算式一共有多少種解法?注意 你提交應該是個整數,不要填寫任何多餘的...

藍橋杯 湊算式

湊算式 如果顯示有問題,可以參見 圖1.jpg 這個算式中a i代表1 9的數字,不同的字母代表不同的數字。比如 6 8 3 952 714 就是一種解法,5 3 1 972 486 是另一種解法。這個算式一共有多少種解法?注意 你提交應該是個整數,不要填寫任何多餘的內容或說明性文字。分析 dfs暴...

藍橋杯 湊算式

湊算式 b def a 10 c ghi 如果顯示有問題,可以參見 圖1.jpg 這個算式中a i代表1 9的數字,不同的字母代表不同的數字。比如 6 8 3 952 714 就是一種解法,5 3 1 972 486 是另一種解法。這個算式一共有多少種解法?注意 你提交應該是個整數,不要填寫任何多餘...