有乙個未完成的等式: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 #include2using
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...