题解 | #MP3光标位置#

MP3光标位置

https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15

#include <iostream>
#include <string>
using namespace std;

int main() {
    int songNum;
    string op;
    cin >> songNum;  //输入歌曲的数量
    cin >> op;       //输入操作码

    int first = 1;     //用于显示当前页的第一个歌曲
    int curSong = 1;    //当前歌曲记录

    if (songNum <= 4)
    {
        for (int i = 1;i <= songNum;i++)
        {
            for (int j = 0;j < op.size();j++)
            {
                if (op[j] == 'U')   //输入是up
                {
                    if (curSong == 1)              //如果当前歌曲是1
                    {
                       curSong = songNum; 
                    }
                    else 
                    {
                        curSong -= 1;                  //当前歌曲减一
                    }
                }
                else if (op[j] == 'D')  //输入是down
                {
                    if (curSong == songNum)
                    {
                        curSong = 1;
                    }
                    else
                    {
                        curSong += 1;
                    }
                }
            }
        }
        for (int i = 1;i <= songNum;i++)
        {
            cout << i << ' ';
        }
        cout << endl;
        cout << curSong << endl;
    }
    else 
    {
        for (int j = 0;j < op.size();j++)
        {
            if (curSong == 1 && op[j] == 'U')
            {
                curSong = songNum;
                first = songNum - 3;
            }
            else if (curSong == songNum && op[j] == 'D')
            {
                curSong = 1;
                first = 1;
            }
            else if (curSong == first && op[j] == 'U')
            {
                curSong -= 1;
                first -= 1;
            }
            else if (curSong == first + 3 && op[j] == 'D')
            {
                first += 1;
                curSong += 1;
            }
            else if (op[j] == 'U')
            {
                curSong -= 1;
            }
            else 
            {
                curSong += 1;
            }
        }
        for (int i = first;i <= first + 3;i++)
        {
            cout << i << ' ';
        }
        cout << endl;
        cout << curSong;
    }
    

    
    


}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
躺尸修仙中:因为很多92的也去卷中小厂,反正投递简历不要钱,面试不要钱,时间冲突就推,不冲突就面试积累经验
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务