1. 程式人生 > 其它 >C#:某城市最高的樓只有一部電梯,計算每個序列電梯執行的時間

C#:某城市最高的樓只有一部電梯,計算每個序列電梯執行的時間

技術標籤:C#c#演算法

一、執行效果截圖

二、實驗要求

題目:

某城市最高的樓只有一部電梯。該電梯和一般電梯不同的是它依照輸入樓層數的先後次序執行。

電梯最初在0層。執行完一個輸入序列後就停止在該樓層,不返回0層。

編寫程式計算電梯執行一個序列的時間。

每次都假設電梯在0層開始,無論上一次執行到幾層。

電梯每上1層需要6秒。

每下1層需要4秒。

如在某層停留,無論上下人多少,均停留5秒。

輸入:樓層的值大於等於1,小於100 ,結尾輸入一個0表示結束輸入。

輸出:計算每個序列電梯執行的時間。

示例:

輸入:

2 1 0

輸出:

26


三、程式碼示例

//author---Henan University.software engineering.李思佳
using System;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入電梯執行序列,空格隔開,以0結束(樓層的值大於等於1,小於100):");
            var s = Console.ReadLine();
            string[] ss = s.Split(' ');            
            int time = 0;
            int s0 = Convert.ToInt32(ss[0]);
            if (s0==0)
            {
                Console.WriteLine("該序列電梯執行時間為:{0},沒有執行。", time);
            }
            else if(s0<0||s0>=100)
            {
                Console.WriteLine("您輸入的樓層不符合要求!");
                Console.WriteLine("該序列電梯執行時間為:{0},沒有執行。", time);
            }
            else
            {
                time = s0 * 6+5;
                for(int i=0;i<ss.Length-2;i++)
                {
                    int a = Convert.ToInt32(ss[i]);
                    int b = Convert.ToInt32(ss[i + 1]);
                    if (b < 0 || b >= 100)
                    {
                        Console.WriteLine("您輸入的樓層不符合要求!");
                        time = 0;
                        break;
                    }
                    if (b == 0)
                        break;
                    if (b - a > 0)
                    {
                        time += (b - a) * 6;
                    }
                    if (b - a < 0)
                    {
                        time += (a - b) * 4;
                    }
                    if (b == a)
                        continue;
                    time += 5;
                }
                Console.WriteLine("該序列電梯執行時間為 {0} 秒。", time);
            }
    
            Console.ReadLine();
        }
    }
}