1 条题解

  • 0
    @ 2025-3-10 15:34:31
    /*
    思路分析
    思路一: 
        1. 将得到的数字用循环获取每一位,存入数组中直接输出
    思路二:
        1. 将数字用字符数组char【】接收 ,倒序输出 或者倒序后输出
    思路三:
        1.用字符串接收 倒序后输出
    
    
    // 思路一: 
        // 1. 将得到的数字用循环获取每一位,存入数组中 倒序输出
    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int n;
        cin >> n;
        vector<int> str;
        while(n != 0) { //直接从后面获取每一位 
            str.push_back(n % 10);
            n = (n - (n % 10)) / 10;
        }
    
        for ( int a : str ) { //跟字符串一样可以这样遍历输出
            cout << a;        //字符串本质上是一个字符数组,它也支持迭代器,
        }                     //因此可以用类似的方式遍历。
        return 0;
    }
        //输出 直接输出即可 ,不用倒序
        //for ( int temp = str.size()-1; temp >= 0 ; temp-- ) {
            //str.size() 获取动态数组大小 siziof()才是放在括号里面
            //str.size()-1 数组大小搞对
        //    cout << str[temp];
        //}
    
    
    //思路二:
        //1. 将数字用字符数组char【】接收 ,倒序输出 或者倒序后输出
    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        vector<char> str;
        char i;
        while((i = cin.get()) != EOF) {  // 使用 cin.get() 逐字符读取
            str.push_back(i);            // 是i = cin.get() 不是cin.get(i)
        }
        //1.倒序输出 用revers()函数 注意不要最后的'\0'
        reverse(str.begin(), str.end()); // 使用 std::reverse 倒序 
        //输出                     //注意:不包括字符串末尾的 '\0'
        size_t j;
        for ( j = 0; j < str.size(); j++ ) {
            cout << str[j];
        }
    
        //2. 倒序后输出
        int n = static_cast<int>(str.size()); //安全强制转换
        reverse(str.begin(), str.end()); //倒序
        for ( int i = 0; i < n; i++) {
            cout << str[i];
        }
        return 0;                   
    }
    
    //hello" 包括5个字符和一个 '\0',总共需要6个字节的空间。然而,
    //数组 str 的大小只有5,这会导致 '\0' 被存储到数组之外,从而引发数组越界。
    //char dest[6] = "world";
    //strcpy(dest, "hello"); // 错误:目标数组空间不足
    //在这个例子中,dest 的大小为6,只能存储5个字符加上一个 '\0'。
    //但如果使用 strcpy 将 "hello" 拷贝到 dest,则会覆盖 dest 的内存,导致越界。
    
    
    //思路三:
        //1.用字符串接收 倒序后输出
    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        string s;
        cin >> s;
        //sort(s.begin(), s.end()); //这个是升序排序
        reverse(s.begin(), s.end());
        for ( char c : s) {
            cout << c;
        }
        return 0;
    }
    
    */
    
    • 1

    信息

    ID
    43
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    52
    已通过
    5
    上传者