您的位置:首页 > 其它

算法实现题 汽车加油问题.

2013-08-23 15:06 573 查看
原文地址:汽车加油问题.">算法实现题 汽车加油问题.作者:ugly
算法实现题
汽车加油问题.

问题描述:

一辆汽车加满油后可行驶n
公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。

.编程任务:

对于给定的n 和k 个加油站位置,编程计算最少加油次数。

.数据输入:

由文件input.txt 给出输入数据。第一行有2 个正整数n
和k,表示汽车加满油后可行驶n 公里,且旅途中有k 个加油站。接下来的1
行中,有k+1 个整数,表示第k 个加油站与第k-1 个加油站之间的距离。第0
个加油站表示出发地,汽车已加满油。第k+1
个加油站表示目的地。

.结果输出:

将编程计算出的最少加油次数输出到文件output.txt
。如果无法到达目的地,则输出”No Solution”。

输入文件示例输出文件示例

input.txt
output.txt

7
7
4

1 2 3 4 5 1 6 6

c++代码实现:

#include "stdafx.h"

#include <fstream.h> //
for operation on files

void main()

{

ifstream
fin("input.txt");

ofstream fout("output.txt");

//

int n, k;

int s[1000];

int i,t,l,tag=1;

fin >> n >> k;

for(i=0;i<=k;i++)

fin >> s[i];

l=n;

t=0;

for(i=0;i<=k;i++)

if(s[i]<=n)

if(s[i]>l)

{

l=n-s[i];

t++;

}

else

l=l-s[i];

else

{

fout<<"no
solution"<<endl;

tag=0;

break;

}

//

if(tag==1)

fout << t <<
endl;

//

// close the opened files

fin.close();

fout.close();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: