结对合作-乘坐电梯的所有乘客爬楼梯的层数之和最少

组员 石鹤李海超

一、题目

石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。

由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。

问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。

二、设计思想

算出停在各层需要爬的层数,比较得出最小的。

我也考虑了老师说的优化方法,但我觉得假如2层和4层都满足那种条件,而那个公式没比较2和4层的大小,所以我没写那种方法,只写了这个笨法。

三、源代码

#include<iostream.h>
int main()
{
    int floor[19]={0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},j,k,x=1;
    int sum,temp=0;
    for(k=1;k<=18;k++)
    {
        for(j=1;j<k;j++)
        {
            if(floor[j]==0)
            {
                continue;
            }
            else
            {
                temp+=(k-j)*floor[j];
            }
        }
        for(j=k+1;j<=18;j++)
        {
            if(floor[j]==0)
            {
                continue;
            }
            else
            {
                temp+=(j-k)*floor[j];
            }
        }
        if(k==1)
        sum=temp;
        if(temp<=sum)
        {
            sum=temp;
            x=k;
        }
        temp=0;
    }
    cout<<x;
}

四、结果截图

五、实验心得

编程时把判断的==写成了=号,找了好久才找到这个错误,以后要改正。

时间: 2024-10-20 18:09:23

结对合作-乘坐电梯的所有乘客爬楼梯的层数之和最少的相关文章

软件工程课堂练习——N层电梯只停一层求乘客爬楼层数最少(基本方法+优化方法)

题目: •石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停.信1201-1班的张一东觉得在每层都停觉得不耐烦. •由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层.在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层. •问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少. 一.设计思想 1.解法一 可以从第一层开始枚举一直到第N层,然后计算如果电梯在第x层停的话所有乘客总共要爬多少层楼.这是最为直接的一个解法.程序代码就

乘坐电梯注意事项

原标题:擅开电梯门致岳父踏空坠亡当事人:开门是想检查 据微信公众号贵州广播电视台“百姓关注”10月8日报道,前几天,一则女婿擅自拧开电梯门,老丈人坠落8米电梯井身亡的视频在网上流传,引起很多人的关注.经过记者核实,这起悲剧发生在黔东南州岑巩县的一小区内. 视频中,女婿用钥匙拧开了电梯门,老人随后走了过去并往电梯里看了一眼,谁知一脚踩空就坠了下去,最后不治身亡. 这一视频在网上流传以后,很多网友都留言称不明白为什么女婿会有电梯钥匙打开电梯门,甚至对老人的死因也存有质疑. 而针对众多网友的疑问,记者

结对编程:电梯调度

电梯调度项目: 项目分析与需求: 从题目上来看,项目要求编写一个掌控电梯的程序.电梯这个东西,大家都乘过,无非就是:乘客上电梯,判断是否超重,乘客选择想要达到的楼层,最后依次去到离需求最近的一个楼层. 项目中要求有四个电梯,其中第一号和第四号电梯是一模一样的,只需要把负载量给修改即可:第二和第三也大同小异,只需要把负载量和输入楼层的判断方式修改一下即可. 在我们的设想中,我们要达到的效果是这样的:得有一个switch语句,来控制一开始的电梯选择界面:之后在case语句之后相应搭载各种需要的语句以

课堂练习之乘坐电梯的方法

一.设计思路 对这个问题进行思考的过程中,还是选择了最原始的方法,需要上电梯的人,没人都按下自己要前往的目的楼层,然后假设一个最优的目的楼层, 用每个人按下的目的楼层减去假设的最优楼层,取绝对值然后再相加,所得的和就是全部人需要爬的楼层数,然后选择最小的值,返回它的脚标,就是最优的目的楼层数. 二.源代码 1 import java.util.*; 2 3 class Elevator 4 { 5 public static int min(int s[]) 6 { 7 int min = s[

结对合作

通过结对合作,令我意识到了编写程序不仅仅要自己能明白,也要便与他人查看和理解自己的程序. 4.1大节提到的代码规范,我们编写代码时要注重代码风格规范和代码设计规范,无论是类名,对象名,缩进还是行宽什么的,在结对子编程时都要有所规定,不然到后面出现的类或是对象多了,就很容易混乱,分不清楚谁是谁.要学会封装,编写函数,将功能模块具体化,减少主方法里面的代码,避免大规模的出错. 4.4中提到了代码复审,在平时编程程序时,我也会从头到尾的查看自己的代码,运行程序,若是多次结果相同,无误就可以了.没有想过

回溯解决爬楼梯问题

1.问题描写叙述 每次爬楼梯有每次可跨1,2,3步.爬上一个N阶楼梯有多少种方式,打印出每种方式. 2.源码 // ConsoleApplication6.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #include <vector> #include <map> using namespace std; typedef std::vector<int> V

爬楼梯问题

// 爬楼梯.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h"#include<iostream>using namespace std; int main(){ int n; cin >> n; int a = 1, b = 1, k = 0; if (n == 1 || n == 0) {  cout<<1; } while (--n > 0) {  k = a + b;  b = a;  a = k; 

蒜头爬楼梯

1000ms 65536K 蒜头君自从春节回来以后,体重就像加了特技一样duang~duang~地暴增起来.于是小蒜头打算每天爬楼梯来燃烧体内的脂肪(咦?蒜怎么会有脂肪=.=).蒜头在爬楼梯的时候脑洞大开,因为蒜头腿短,爬楼梯的时候一次只能迈1级或2级台阶,它就想到了,假如一共有n级台阶的话,它一共有多少种方法能够爬到楼梯顶部呢? 聪明的你快来帮帮小蒜头吧~建议你使用动态规划求解哦,直接搜索是会超时的^o^ 输入格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 输出格式: 第一行输出你

codevs——1742 爬楼梯

1742 爬楼梯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 小明家外面有一个长长的楼梯,共N阶.小明的腿很长,一次能跨过一或两阶.有一天,他突发奇想,想求出从最低阶到最高阶共有几种爬楼梯的方案.你帮帮他吧! 输入描述 Input Description 一个整数N. 输出描述 Output Description 一个整数,为方案总数. 样例输入 Sample Input 5 样例输出 Sample Output 8