参考文章:http://blog.sina.com.cn/s/blog_4c471b9601000czq.html
/*
一辆重型卡车预穿过长度大于1000公里小于1500公里的沙漠,
卡车耗油为1升/公里,卡车总载油能力为500升。显然卡车装
一次油是过不了沙漠的,因此司机必须设法在沿途建立几个
储油点,使卡车能顺利穿越沙漠,试问司机如何建立这些储
油点?每一个储油点应存多少汽油,才能使卡车以消耗最少
汽油的代价通过沙漠?请通过打印储油点的序号,各储油点距
离沙漠始点的距离以及储油点的储油量
*/
1 #include <stdio.h> 2 int main() 3 { 4 //储油点位置,值为距终点的距离 point[0]即为终点 5 float point[100]={0}; 6 //对应储油点的储油量 7 float oil[100]={0}; 8 float dis;//沙漠长度 9 int i,j; 10 printf("请输入沙漠长度(1000~1500):"); 11 scanf("%f",&dis); 12 point[1]=500; 13 oil[1]=500; 14 for(i=2;point[i-1]<dis;i++) 15 { 16 oil[i]=i*500; 17 point[i]=point[i-1]+500.0/(2*i-1); 18 } 19 printf("%8s\t%8s\t%8s\n","储油点","距起点(km)","储油量(L)"); 20 for(j=i-1;j>=1;j--) 21 { 22 printf("%8d\t%8.2f\t%8.2f\n",(i-1)-j+1,dis-point[j],oil[j]); 23 } 24 return 0; 25 }