IDDFS--UVA - 1374 Power Calculus

来源:互联网 发布:黑马播放器 for mac 编辑:程序博客网 时间:2024/06/06 09:31
#include <cstdio>#include <algorithm>using namespace std;const int maxn = 15;int a[maxn], n;bool dfs(int maxc, int d, int maxd){    if((maxc<<(maxd-d)) < n) return false;    if(maxc == n) return true;    a[d] = maxc;    for(int i=0; i<=d; i++) {if(dfs(a[d]+a[i], d+1, maxd)) return true;if(dfs(a[d]-a[i], d+1, maxd)) return true;    }    return false;}int main(){int maxd;while(scanf("%d", &n), n) {for(maxd = 0; ; maxd++)if(dfs(1, 0, maxd)) break;printf("%d\n",maxd);}    return 0;}

0 0
原创粉丝点击