How Many Equations Can You Find

来源:互联网 发布:python math 编辑:程序博客网 时间:2024/05/16 02:42

How Many Equations Can You Find

Now give you an string which only contains 0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9.You are asked to add the sign ‘+’ or ’-’ between the characters. Just like give you a string “12345”, you can work out a string “123+4-5”. Now give you an integer N, please tell me how many ways can you find to make the result of the string equal to N .You can only choose at most one sign between two adjacent characters.
Input
Each case contains a string s and a number N . You may be sure the length of the string will not exceed 12 and the absolute value of N will not exceed 999999999999.
Output
The output contains one line for each data set : the number of ways you can find to make the equation.
Sample Input
123456789 321 1
Sample Output
181

#include <cstdio>#include <cstring>const int MAX=1e7;char str[MAX];int n,len,cut;void dfs(int l,__int64 sum){ if(l == len&& sum == n)    {    cut++;    return ;}  __int64 ans=0;  for(int i= l;i < len ;i++)     {          ans=ans*10+(str[i]-'0');          dfs(i+1,sum+ans);  if(l)          dfs(i+1,sum-ans); }}int main(){     while(~scanf("%s %d",str,&n))    {          cut=0; len=strlen(str);             dfs(0,0);             printf("%d\n",cut);}return 0;}


原创粉丝点击