华为机试-01背包问题(递归)
2015-04-25 23:38
148 查看
题目描述:
给定一个总值,和一个整数数组,从数组中找出和等于总值的那几个数,
如果存在,数相应的下标为1,其余的为0,如果不存在,输出no。
代码:
给定一个总值,和一个整数数组,从数组中找出和等于总值的那几个数,
如果存在,数相应的下标为1,其余的为0,如果不存在,输出no。
代码:
#include <stdio.h> #include <string.h> #define N 50 int a ; int f ={0}; int find(int n,int m) { if(n==0) return 1; else if(n<0||(n>0&&m==0)) return 0; else { if(find(n-a[m-1],m-1)) { f[m-1]=1; return 1; } else find(n,m-1); } } int main() { int n,m,i; scanf("%d%d",&n,&m); for(i=0;i<m;i++) scanf("%d",&a[i]); if(find(n,m)) { for(i=0;i<m;i++) printf("%d ",f[i]); printf("\n"); } else printf("no\n"); return 0; }
相关文章推荐
- 华为招聘机试整理13:算分数的问题
- 华为机试 - 约瑟夫问题
- 华为机试——约瑟夫环问题(总结)
- 华为机试-迷宫问题
- 华为机试在线训练-牛客网(24)迷宫问题
- 机试算法讲解: 第43题 递归之汉诺塔问题
- 01背包问题python递归实现
- [c++,algorithm] 基于非递归和递归的 01背包问题
- 华为机试 是否存在路径(深度优先遍历、回朔法、递归)
- 华为机试:星期几的问题
- 华为机试题——购物清单(01背包问题)
- 华为机试 小结 关于函数传参修改的问题
- 华为机试:和尚挑水问题
- 01背包问题(当有的背包重量是非整数时)的递归(优化成动态规划+再用滚动数组优化)解法+一些动态规划(递归,搜索)的高级技巧
- 华为机试--地铁换乘问题
- 华为机试练习ex013_cpp之操作系统任务调度问题
- 华为机试:密码强度等级、百钱买百鸡问题
- 华为机试---迷宫问题
- 01背包问题中递归产生所有可能组合
- 华为机试测试-放苹果-递归