#include <iostream>
using namespace std;
void calculate(int len1,int len2,int len3,int n1,int n2,int n3)
{
int length = 19;
int a[3] = { 0,0,0 };
for (int i = 0; i < n1; i++)
{
length -= len1;
if (length < 0)
{
length += len1;
break;
}
a[0]++;
}
for (int i = 0; i < n2; i++)
{
length -= len2;
if (length < 0)
{
length += len2;
break;
}
a[1]++;
}
for (int i = 0; i < n3; i++)
{
length -= len3;
if (length < 0)
{
length += len3;
break;
}
a[2]++;
}
cout << "=====================================" << endl;
cout << "长度为 " << len1 << " 的钢管有 " << a[0] << " 根" << endl;
cout << "长度为 " << len2 << " 的钢管有 " << a[1] << " 根" << endl;
cout << "长度为 " << len3 << " 的钢管有 " << a[2] << " 根" << endl;
cout << "剩余长度为" << length << endl;
}
int main()
{
int length = 19;
cout << "请输入三种长度" << endl;
int len1 = 0;
int len2 = 0;
int len3 = 0;
while (cin >> len1 >> len2 >> len3)
{
//输入的三种长度没有问题则跳出循环
if (len1 <= 19 && len1 >= 0 &&
len2 <= 19 && len2 >= 0 &&
len3 <= 19 && len3 >= 0
)
break;
cout << "输入的数据不合法请重新输入"<<endl;
}
cout << "请输入三种长度钢管的数量" << endl;
int n1 = 0;
int n2 = 0;
int n3 = 0;
cin >> n1 >> n2 >> n3;
calculate(len1, len2, len3, n1, n2, n3);
calculate(len1, len3, len2, n1, n3, n2);
calculate(len2, len1, len3, n2, n1, n3);
calculate(len2, len3, len1, n2, n3, n1);
calculate(len3, len2, len1, n3, n2, n1);
calculate(len3, len1, len2, n3, n1, n2);
system("pause");
return 0;
}
c++实现钢管长度19下料问题(穷举法)
最新推荐文章于 2022-11-18 17:12:25 发布