~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

/*摘自书本,这种算法很绕!*/

#include <iostream>
using namespace std;

int a[]={1,2,3,5};
int n=sizeof(a)/sizeof(int),k=12;

bool dfs(int i,int sum)
{
    if(i==n) 
      return sum==k;
    if(dfs(i+1,sum))
      return true;
    if(dfs(i+1,sum+a[i]))
      return true;
    return false;
}
int main()
{
    if(dfs(0,0))
      cout<<"yes";
    else
      cout<<"no";    
    return 0;
}

 

posted on 2016-03-18 04:33  LuoTian  阅读(294)  评论(0编辑  收藏  举报