现在的位置: 首页 > 综合 > 正文

hdu 2266 How Many Equations Can You Find

2018年12月28日 ⁄ 综合 ⁄ 共 372字 ⁄ 字号 评论关闭

简单深搜

 

 

 

 

#include<stdio.h>
__int64 n,count;
int a[15],num;
char str[30];
void dfs(int op,__int64 sum)
{
	if(op==num&&sum==n)
	{
		count++;
	}
	if(op==num)return ;
	  __int64 k=0;
	for(int i=op;i<num;i++)
	{
		k=k*10+a[i];
		dfs(i+1,sum+k);
		if(op!=0)
			dfs(i+1,sum-k);
	}
}
int main()
{
	int i;
    char s[15];
	while(scanf("%s%I64d",s,&n)!=-1)
	{
		count=0;
		for(i=0;s[i];i++)
			a[i]=s[i]-'0';
		num=i;
		dfs(0,0);
		printf("%I64d\n",count);
	}
	return 0;
}

 

抱歉!评论已关闭.