入門OJ 3168 等式

2022-08-01 11:03:11 字數 981 閱讀 2570

有乙個未完成的等式:1  2  3  4  5  6  7  8  9=n。

給出整數n的具體值後,請你在2,3,4,5,6,7,8,9這8個數字的每乙個前面,或插入乙個運算符號「+」號,或插入乙個運算符號「-」號,或不插入任何運算符號,使等式成立,並統計出能使等式成立的算式總數,若無解,則輸出0。例如:取n為108時,共能寫出15個不同的等式,以下就是其中的二個算式:

1+23+4+56+7+8+9=108     

123-45+6+7+8+9=108

只有1個數,即整數n的值。-30000≤n≤1000000

只有一行,該行只有1個數,表示能使等式成立的算式總數。

108

15

此題先dfs搜一遍從2到9每個數字前的符號情況,用陣列存起來,最後在求值即可。

1 #include2

using

namespace

std;

3int n,ans=0; 4

bool

flag;

5int num[11];//

0沒有,1加法,2減法

6void dfs(int

sum)722

if(flag)//

加法就加

2326

else q-=p;//

減法就減 27}

28if(q==n)ans++; //

值是正確的方案加一

29return;30

} 31 num[sum]=0;//

搜尋三種符號情況

32 dfs(sum+1

);33 num[sum]=1

;34 dfs(sum+1

);35 num[sum]=2

;36 dfs(sum+1

);37}38

intmain()

39

1983 等式問題

時間限制 1 s 空間限制 64000 kb 題目等級 silver 題解 有乙個未完成的等式 1 2 3 4 5 6 7 8 9 n 空格 1前面沒有空格 內可以填入 也可以不填。程式設計找出輸入某個整數 n 後使等式成立的所有方案的總數。保證有解。輸入描述 input description 輸...

1983 等式問題

題目描述 description 有乙個未完成的等式 1 2 3 4 5 6 7 8 9 n 空格 1前面沒有空格 內可以填入 也可以不填。程式設計找出輸入某個整數 n 後使等式成立的所有方案的總數。保證有解。輸入描述 input description 輸入乙個數n。輸出描述 output des...

1983 等式問題

題目描述 description 有乙個未完成的等式 1 2 3 4 5 6 7 8 9 n 空格 1前面沒有空格 內可以填入 也可以不填。程式設計找出輸入某個整數 n 後使等式成立的所有方案的總數。保證有解。輸入描述 input description 輸入乙個數n。輸出描述 output des...