(用c++语言表达)有四个人夜间过一座独木桥,而这座独木桥一次最多允许两人同时通过,他们只有一只手电筒.而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去.两人同行时以
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/17 12:56:31
![(用c++语言表达)有四个人夜间过一座独木桥,而这座独木桥一次最多允许两人同时通过,他们只有一只手电筒.而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去.两人同行时以](/uploads/image/z/7221751-7-1.jpg?t=%EF%BC%88%E7%94%A8c%2B%2B%E8%AF%AD%E8%A8%80%E8%A1%A8%E8%BE%BE%EF%BC%89%E6%9C%89%E5%9B%9B%E4%B8%AA%E4%BA%BA%E5%A4%9C%E9%97%B4%E8%BF%87%E4%B8%80%E5%BA%A7%E7%8B%AC%E6%9C%A8%E6%A1%A5%2C%E8%80%8C%E8%BF%99%E5%BA%A7%E7%8B%AC%E6%9C%A8%E6%A1%A5%E4%B8%80%E6%AC%A1%E6%9C%80%E5%A4%9A%E5%85%81%E8%AE%B8%E4%B8%A4%E4%BA%BA%E5%90%8C%E6%97%B6%E9%80%9A%E8%BF%87%2C%E4%BB%96%E4%BB%AC%E5%8F%AA%E6%9C%89%E4%B8%80%E5%8F%AA%E6%89%8B%E7%94%B5%E7%AD%92%EF%BC%8E%E8%80%8C%E8%BF%87%E6%A1%A5%E7%9A%84%E6%97%B6%E5%80%99%E5%BF%85%E9%A1%BB%E6%8C%81%E6%9C%89%E6%89%8B%E7%94%B5%E7%AD%92%2C%E6%89%80%E4%BB%A5%E5%B0%B1%E5%BE%97%E6%9C%89%E4%BA%BA%E6%8A%8A%E6%89%8B%E7%94%B5%E7%AD%92%E5%B8%A6%E6%9D%A5%E5%B8%A6%E5%8E%BB%EF%BC%8E%E4%B8%A4%E4%BA%BA%E5%90%8C%E8%A1%8C%E6%97%B6%E4%BB%A5)
(用c++语言表达)有四个人夜间过一座独木桥,而这座独木桥一次最多允许两人同时通过,他们只有一只手电筒.而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去.两人同行时以
(用c++语言表达)有四个人夜间过一座独木桥,而这座独木桥一次最多允许两人同时通过,
他们只有一只手电筒.而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去.两人同行时以较慢者的速度为准,四人过桥时间分别是1分、2分、5分和10分.求最短时间,(1)1分钟的和2分钟的先过桥,1分钟的回来,(此时共耗时3分钟),(2)5分钟的和10分钟的过桥,2分钟的回来(共耗时2+1+10+2=15分钟),(3)1分钟的和2分钟的过桥(共耗时2+1+10+2+2=17分钟),共耗时17分钟. 求用c++语言表达并得出17~
(用c++语言表达)有四个人夜间过一座独木桥,而这座独木桥一次最多允许两人同时通过,他们只有一只手电筒.而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去.两人同行时以
#include <iostream>
#include <iomanip>
using namespace std;
struct person {
char name[10];
int ptime;
};
// 按过桥时间从小到大排序
void Sort(struct person a[],int n) {
int i,j,k;
struct person aone;
for(i = 0; i < n - 1; ++i) {
k = i;
for(j = i + 1; j < n; ++j) {
if(a[k].ptime > a[j].ptime)
k = j;
}
if(i != k) {
aone = a[k];
a[k] = a[i];
a[i] = aone;
}
}
}
int main() {
struct person a[] = {{"John",12},{"Park",3},{"Mike",9},{"Doson",6},{"Jodan",10}};
int n = sizeof(a) / sizeof(a[0]);
int i,ttime = 0;
Sort(a,n);
for(i = 1; i < n; ++i)
ttime += 2 * a[0].ptime + a[i].ptime;
ttime -= a[0].ptime;
cout << "共需时间: " << ttime << "分!\n";
return 0;
}