求救,请快!!!

clavsummer 2009-04-25 12:00:27
#include <iostream.h>
#include <string.h>

int data[]={40,25,30,20};
int N=4,total=910;

int stack[100],top;
int temp[100],len;
int min;

void print()
{
int i;
for(i=0;i<len;i++)
cout<<temp[i]<<" ";
cout<<endl;
}

int Sum()
{
int i;
int sum=0;
for(i=0;i<top;i++)
sum=sum+data[i]*stack[i];
return sum;
}

void Trackback(int deep)
{
int i;
if(deep>=N)
{
if(total-Sum() < min)
{
min=total-Sum();
memcpy(temp,stack,sizeof(int)*top);
len=top;
}
return ;
}
for(i=1;i<=total/data[deep];i++)
{
stack[top++]=i;
if(Sum()>total)
{
top--;
return;
}
Trackback(i+1);
top--;
}
}

int main()
{
top=0;
min=total;
Trackback(3);
print();
cout<<"min="<<min<<endl;
return 0;
}


//这些代码实现的功能是什么,请详细标示,特别是trackback()函数那点!
...全文
151 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
o0MyBelieve0o 2009-05-04
  • 打赏
  • 举报
回复
哪搞的代码啊!  没什么意义啊!
denanjin 2009-05-04
  • 打赏
  • 举报
回复
Johnyxc 2009-05-04
  • 打赏
  • 举报
回复
代码可读性不强
  • 打赏
  • 举报
回复
没看出来是干嘛的.
lori227 2009-04-25
  • 打赏
  • 举报
回复

memcpy(temp,stack,sizeof(int)*top);


把 stack 数组 copy 到temp数组中 复制个数 是top个!
ToBeTough 2009-04-25
  • 打赏
  • 举报
回复
觉的是求Min{total-sum{1-total/data[deep]}}<deep到4为止>;
ljhiiiiiiii 2009-04-25
  • 打赏
  • 举报
回复
这段程序的大概是在data数组中按顺序查找sum()值距离total差值最小的那些元素。
返回的元素序列在temp中,差值在min变量中。
chenchangxiong 2009-04-25
  • 打赏
  • 举报
回复
返回sum小于total且深度小于N的数组项,存于temp数组中输出
sum求法是 从1开始的求后 i*data[i]
程序写的很另类啊
十八道胡同 2009-04-25
  • 打赏
  • 举报
回复
帮顶
piginthetree 2009-04-25
  • 打赏
  • 举报
回复
我也没看出来是干嘛的
deltamaster 2009-04-25
  • 打赏
  • 举报
回复
这代码看起来令人不是很爽。
要花费很多时间处理缩进的问题。
liliangbao 2009-04-25
  • 打赏
  • 举报
回复
帮顶~
aaaa3105563 2009-04-25
  • 打赏
  • 举报
回复
顶·

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧