又見火車票問題

2021-04-13 06:33:58 字數 2284 閱讀 1146

不過這次的火車票問題其實並不是火車票問題,而是取最大植的問題 。

問題描述:

比如說從廣州到北京 有四個站

站號   **    站名

1       0       廣州

2       50       長沙

3       30       武漢

4       220      北京

第乙個站是起點站,所以第乙個站是0元,從第乙個到第二個站是50元,第二到第三是30元 等等

現在問題在這裡,看你現在有多少錢在身上(該金額由使用者輸入,比如249),從某一站出發(該站名也由使用者輸入,比如長沙),求最遠能到達哪個站?

用一條sql語句,不使用儲存過程實現。

問題分析:

可能有兩個方向都可以走,所以必須考慮兩個方向的問題。

對於遠沒有明確定義,可以是**高的為遠,也可以認為站數 多的為遠

語句:1、如果**高的為遠

--測試環境

declare @test table (站號 int, ** int, 站名 varchar(4))

insert @test

select 1, 0, '廣州' union all

select 2, 50, '長沙' union all

select 3, 30, '武漢' union all

select 4, 220, '北京'

--語句

select top 1 * from (      --選擇第乙個

select 站號,站名,(select sum(**) from @test where 站號<=b.站號 and 站號》(select 站號 from @test where 站名='長沙')) as **

from @test b         --正向

union all

select 站號,站名,(select sum(**) from @test where 站號》b.站號 and 站號<=(select 站號 from @test where 站名='長沙')) as **

from @test b       --反向

) as t

where **<=249         --限制**

order by ** desc     --**高的為遠,選擇**最高的

--結果

站號          站名   **         

----------- ---- -----------

1           廣州   50

(所影響的行數為 1 行)

2、如果站數多的為遠

--測試環境

declare @test table (站號 int, ** int, 站名 varchar(4))

insert @test

select 1, 0, '廣州' union all

select 2, 50, '長沙' union all

select 3, 30, '武漢' union all

select 4, 220, '北京'

--語句

select top 1 * from (      --選擇第乙個

select 站號,站名,(select sum(**) from @test where 站號<=b.站號 and 站號》(select 站號 from @test where 站名='長沙')) as **

,abs(站號-(select 站號 from @test where 站名='長沙')) as 站數

from @test b      --正向

union all

select 站號,站名,(select sum(**) from @test where 站號》b.站號 and 站號<=(select 站號 from @test where 站名='長沙')) as **

,abs(站號-(select 站號 from @test where 站名='長沙')) as 站數

from @test b       --反向

) as t

where **<=249    --限制**

order by 站數 desc,** desc     --站數多的為遠,選擇站數最多的,一樣多的選擇**高的

--結果

站號          站名   **          站數         

----------- ---- ----------- -----------

1           廣州   50          1

(所影響的行數為 1 行)

python火車票票價 Python火車票機

我被困在乙個練習,我需要做乙個火車票機,但我只是乙個星期的練習python,我不知道如何開始。在 首先我得到了這個 stations schagen heerhugowaard alkmaar castricum zaandam amsterdam sloterdijk amsterdam cent...

12 4火車票問題

火車票訂購 火車經過x站,火車最大載客人數為m,有n個訂票請求,請求訂購從a站到b站的k張票,若能滿足訂購要求則輸出1,否則輸出0。資料從ticket.in中輸入,第一行有四個數,分別為n,m。接下來有n行,每行三個數分別為a,b,k。結果輸出到檔案ticket.out中。使用多個變數i j時不要把...

火車票業務

msgcode msginfo 100請求成功 101引數無效 102簽名驗證失敗 103該ip沒有許可權訪問此介面 104請求過於頻繁,請稍後重試 999未知的失敗原因 201該訂單不存在 202當前訂單狀態不允許執行此操作 203當前時間不支援此服務 204坐席無效 205發車日期無效 206取...