127 条题解

  • -1
    @ 2024-12-8 9:54:40

    A1 你好,梦熊 OJ !题解

    思路

    题目的描述十分简单,只要输出Hello, MXOJ!即可。所以我们必须要整点活。

    解题方法

    众所周知,梦熊 OJ 是支持多种编程语言的,那么在这么多垃圾语言中,最简单的一定是python,至于为什么,我也不知道,反正你就记住用python只要写print("Hello, MXOJ!")就行了。
    但是,当您使用python进行提交时,您会发现一件事情:使用python的运行时间长达 21ms,这肯定是不行的。所以我们可以使用 C++ 系列的流输入输出来做这道题(代码最后统一给,这里仅保留关键部分)。而 C++ 系列的流输入输出的板子长这样:std::cout<<"Hello, MXOJ!";,如果您不想写最前面的std::,请在代码最前面写上using namespace std;或者using std::cout;
    但是,这样还是不够快。
    众众众众所周知,有个变态神奇的东西叫 C 语言,而 C 语言中,有一种格式化输出的函数(其实只有这个)叫printf,是的,它就凭多了一个f,效率就会比python中的print快 20ms ,并且不需要加上std::,所以我们可以这样写:printf("Hello, MXOJ!");
    请注意:使用 C++ 或 C 语言编写的代码一般情况下需要再语句末尾加上英文分号;,否则 CE 别找我。

    Code

    python版:

    print("Hello, MXOJ!")
    

    C++ 流输入版 1:

    #include <iostream>//使用 cout 需调用此头文件,#include后面不需要分号  
    int main(){//主函数
        std::cout<<"Hello, MXOJ!";
        return 0;//结束程序
    }
    

    C++ 流输入版 2:

    #include <iostream>
    using namespace std;
    int main(){
        cout<<"Hello, MXOJ!";
        return 0;
    }
    

    C 语言格式化输出版:

    #include <stdio.h>
    int main(){
        printf("Hello, MXOJ!");
        return 0;
    }  
    

    当然 C 语言的格式化输入 C++ 也是可以用的,就像这样:

    #include <cstdio>//stdio.h 是 C 语言的,在 C++ 上执行,建议改为 cstdio
    int main(){
        printf("Hello, MXOJ!");
        return 0;
    }
    

    彩蛋

    稍微整个活

    知周所众,C++ 里有个东西叫 STL,STL 里有个东西叫 string 。于是我们便可以完成以下操作:

    #include <iostream>
    #include <string>//不写这个 CE 别找我
    using namespace std;
    int main(){
        string s="Hello, MXOJ!";
        int l=s.length();
        for(int i=0;i<l;i++){
            cout<<s[i];
            //也可以写成printf("%c",s[i]);
        }
        return 0;
    }
    

    当然,STL不止这些,我们还可以这样:

    #include <iostream>
    #include <vector>//不写 CE 别找我
    #include <cstring>
    using namespace std;
    vector<char>s;
    int main(){
        s.push_back('H');
        s.push_back('e');
        s.push_back('l');
        s.push_back('l');
        s.push_back('o');
        s.push_back(',');
        s.push_back(' ');
        s.push_back('M');
        s.push_back('X');
        s.push_back('O');
        s.push_back('J');
        s.push_back('!');
        auto l=s.size();
        for(int i=0;i<l;i++){
            cout<<s[i];
        }
        return 0;
    }
    

    END

    信息

    ID
    1
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    (无)
    递交数
    2873
    已通过
    1401
    上传者