#include <stdio.h> #include <stdlib.h> int sum=0; int a[1000]; int c[1000]; int n,m; int x(int m); int mian() { scanf("%d %d",&n,&m); for(int i=0;i<n;i++) { scanf("%d",&a[i]); printf(" "); } printf("\n"); for(int j=0;j<n;j++) { scanf("%d",&c[j]); printf(" "); } printf("%d",x(m)); return 0; } int x(int m) { for(int i=0;i<n;i++) { if(m-a[i]<=0) { break; } else { sum=sum+c[i]; m=m-a[i]; x(m); } } return sum; }
时间: 2024-04-19 19:23:49 浏览: 65
4条C语言简单程序 欢迎下载
这是一个计算背包问题的代码,它通过递归的方式求解最大价值和。用户输入的第一行是两个整数n和m,分别表示物品的数量和背包的容量。接下来的两行分别输入了物品的重量和价值。代码通过递归函数x(m)来求解最大价值和。函数中,通过循环遍历每个物品,如果当前物品的重量大于背包剩余的容量,则跳过该物品;否则,将该物品的价值加到sum上,减去该物品的重量,再递归调用x(m)函数。最后返回sum作为结果。
阅读全文