编程之美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);
}
#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);
}
相关文章推荐
- 《编程之美》1.4买书问题的常数时间解法
- 《编程之美》1.4买书问题解法
- 编程之美1.4-买书问题-解法2
- 《编程之美》读书笔记(四):买书折扣问题的贪心解法
- 《编程之美》学而思 - 金刚坐飞机 问题2的解法
- 编程之美1.4 买书问题
- 编程之美--游戏之乐--1.4买书问题(改进解法)
- 编程之美:中国象棋将帅问题解法二
- 买书问题——编程之美1.4
- 《编程之美》最大公约数问题之循环解法
- 《编程之美》 - 3.1 字符串移位包含的问题( 不用strstr()的解法 )
- 《编程之美》读书笔记 -- 1.4买书问题
- 编程之美:第一章 1.4 买书问题
- 《编程之美》1.4 买书问题 贪心法则
- 《编程之美》读书笔记03: 1.4 买书问题
- 编程之美“字符串移位包含的问题”的另一种解法
- 《编程之美》1.4 买书问题 贪心策略
- 编程之美问题之二叉树层序遍历多种解法
- 编程之美 1.4买书问题常数时间空间解法
- 编程之美问题之二叉树层序遍历多种解法