您的位置:首页 > 编程语言

编程之美1.4-买书问题-解法1

2008-07-23 13:22 281 查看
#include <stdio.h>
#include <iostream>

float F(int y1,int y2,int y3,int y4,int y5){
int a[5]={y1,y2,y3,y4,y5};
for (int i=0;i<4;i++){
for (int j=0;j<4-i;j++){
if (a[j+1]>a[j]){
int t;
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
y1=a[0];
y2=a[1];
y3=a[2];
y4=a[3];
y5=a[4];
if (y1==0) return 0;

float b[5];
if (y5>0)
{
for (int i=0;i<5;i++)
b[i]=-1;
b[0]=5*8*0.75+F(y1-1,y2-1,y3-1,y4-1,y5-1);}
if (y4>0)
b[1]=4*8*0.8+F(y1-1,y2-1,y3-1,y4-1,y5);
if (y3>0)
b[2]=3*8*0.9+F(y1-1,y2-1,y3-1,y4,y5);
if (y2>0)
b[3]=2*8*0.95+F(y1-1,y2-1,y3,y4,y5);
if (y1>0)
b[4]=1*8+F(y1-1,y2,y3,y4,y5);

float x;
for (int w=0;w<5;w++)
{ if (b[w]>0)
x=b[w];
}

for (int z=0;z<5;z++)
{ if (b[z]>0 && b[z]<x)
x=b[z];
}
return x;
}

void main()
{
float r;
r=F(2,2,2,1,1);
printf("%f/n",r);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: