3,881
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main(void) {
int total = 4; //设备总数
int sum[3] = { 0 }; //分配方案
int best[3] = { 0 }; //最佳分配方案
int maxFound = 0, temp; //收益
int i, j, k;
for (i = 0; i <= total; i++) { //甲地区
switch (i) {
case 0:
sum[0] = 38;
break;
case 1:
sum[0] = 41;
break;
case 2:
sum[0] = 48;
break;
case 3:
sum[0] = 60;
break;
case 4:
sum[0] = 66;
break;
}
for (j = 0; j < total - i; j++) { //乙地区
switch (j) {
case 0:
sum[1] = 40;
break;
case 1:
sum[1] = 42;
break;
case 2:
sum[1] = 50;
break;
case 3:
sum[1] = 60;
break;
case 4:
sum[1] = 66;
break;
}
for (k = 0; k < total - i - j; k++) { //丙地区
switch (k) {
case 0:
sum[2] = 48;
break;
case 1:
sum[2] = 64;
break;
case 2:
sum[2] = 68;
break;
case 3:
sum[2] = 78;
break;
case 4:
sum[2] = 76;
break;
}
temp = sum[0] + sum[1] + sum[2];
if (temp > maxFound) {
maxFound = temp;
best[0] = sum[0];
best[1] = sum[1];
best[2] = sum[2];
}
}
}
}
printf("分配方案如下:%d,%d,%d\n",best[0],best[1],best[2]);
printf("总收益:%d", maxFound);
return 1;
}
#include <stdio.h>//穷举法求解
int main(void) {
int f1 = 5000,f2,f3,f4;
int max =0,temp = 0; // 牛的数量
int ff[4],tf[4];
int i,j,k,l;
for(i=0; i<=f1; i+=1000) // 第一年投资
{
temp += i*0.002 + (f1-i)*0.003; //小牛数量
f2 = 0.2*f1 + 0.3*i; // 收入
for(j=0; j<=f2; j+=1000) //第二年投资
{
temp += j*0.002 + (f2-j)*0.003;//小牛数量
f3 = 0.2*(f2/1000)*1000 + 0.3*j + f2;//收入
for(k=0; k<=f3; k+=1000) //第三年投资
{
temp += k*0.002 + (f3-k)*0.003;//小牛数量
f4 = 0.2*(f3/1000)*1000 + 0.3*k + f3; //收入
for(l=0; l<=f4; l+=1000) //第四年投资
{
temp += l*0.002 + (f4-l)*0.003;//小牛数量
if(temp > max)
{
max = temp;
ff[0] = i;tf[0]=f1;
ff[1] = j;tf[1]=f2;
ff[2] = k;tf[2]=f3;
ff[3] = l;tf[3]=f4;
}
temp = 0;
}
}
}
}
printf("第1年投资A种牛: %5d B种牛: %d\n",ff[0],tf[0]-ff[0]);
printf("第2年投资A种牛: %5d B种牛: %d\n",ff[1],tf[1]-ff[1]);
printf("第3年投资A种牛: %5d B种牛: %d\n",ff[2],tf[2]-ff[2]);
printf("第4年投资A种牛: %5d B种牛: %d\n",ff[3],tf[3]-ff[3]);
printf("四年后牛群牛数: %d \n",max);
return 0;
}
for (j = 0; j < total - i; j++) { //乙地区
....
for (k = 0; k < total - i - j; k++) { //丙地区
for (j = 0; j <= total - i; j++) { //乙地区
....
for (k = 0; k <= total - i - j; k++) { //丙地区