巴士座位排列与图表中的数字 - C# 算法 - 根据输入的数字查找座位是 W、M、S

Rus*_*hee 1 c# data-structures

W  M  S     |   S  M  W

01 02 03    |   19 20 21

04 05 06    |   22 23 24

07 08 09    |   25 26 27

10 11 12    |   28 29 30

13 14 15    |   31 32 33

16 17 18    |   34 35 36
Run Code Online (Sandbox Code Playgroud)

这些是巴士的座位安排。我必须编写一个 C# 算法 - 当用户给出一个数字时,算法应返回座位是 W、M 或 S。示例 - 如果用户输入数字 26,算法应返回 M。实现此目的最快的方法是什么?

Mat*_*son 5

那这个呢?

public static char SeatId(int seatNumber)
{
    return seatNumber >= 19 
        ? "SMW"[(seatNumber-1) % 3]
        : "WMS"[(seatNumber-1) % 3];
}
Run Code Online (Sandbox Code Playgroud)

更短但可读性较差:

public static char SeatId(int seatNumber)
{
    return --seatNumber >= 18 
        ? "SMW"[seatNumber % 3]
        : "WMS"[seatNumber % 3];
}
Run Code Online (Sandbox Code Playgroud)