首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

生产与存贮有关问题

2012-09-11 
生产与存贮问题在百度知道上回答的一个有意思小算法题。题目:今已知半年内,各月份的需求量及生产该部件每单

生产与存贮问题

在百度知道上回答的一个有意思小算法题。

题目:

今已知半年内,各月份的需求量及生产该部件每单位数所需工时数如下表所示: 月份 k 1 2 3 4 5 6 月需求量bk 8 5 3 2 7 4 单位工时ak 11 18 13 17 20 10 设库存容量H = 9,开始时库存量为2,期终库存量为0。要求制定一个半年逐月生产计划,使得既满足需求和库存容量的限制,又使得总耗费工时数最少。

我的解答,在vs2008下编译通过:

#include "stdafx.h"#include<iostream>using namespace std;int main() {const int 库容=9;int 库存量 = 2;int 月需[7]={0,8,5,3,2,7,4};int 月工时[7]={0,11,18,13,17,20,10};int 总工时=0;int 月生产[7]={0};for (int i=1;i<=6; i++){int 本月必生产 = 月需[i]-库存量;if (本月必生产 > 0){库存量 = 0;总工时 += 本月必生产*月工时[i];月生产[i] += 本月必生产;}else{库存量 = 本月必生产*(-1);}//额外生产int 虚拟库存 = 库存量;for (int j=i+1;j<=6; j++){if (月工时[i] < 月工时[j]){if (虚拟库存 >= 月需[j]){虚拟库存 -= 月需[j];continue;}虚拟库存 = 0;int 库空余 = 9-库存量;if (库空余 > 0){if(库空余>=月需[j]){总工时 += 月需[j]*月工时[i];库存量 += 月需[j];月生产[i] += 月需[j];}else{总工时 += 库空余*月工时[i];库存量 = 9;月生产[i] += 库空余;break;}}else{break;}}else{break;}}}cout << "月生产: ";for (int i = 1; i<=6; i++){cout << "[" << 月生产[i] << "]";}cout << endl;cout << "总工时: " << 总工时 << endl;return 0;}


结果输出:

月生产: [15][0][8][0][0][4]

总工时: 309

热点排行