首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 遞歸反轉字串:主函數缺少回傳型別、字串字面值用雙引號

     編輯:程式設計綜合問答

原始碼兩處語法錯誤:

  1. main() 缺少回傳型別,應為 int main() (C++ 強制)。
  2. string s = 'abcd'; 單引號為**字元字面值**,字串需用雙引號 "abcd"。

修正後完整程式

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

string f(string s) {
    if (s.length() == 1) return s;
    return f(s.substr(1)) + s.substr(0, 1);
}

int main() {
    string s = "abcd";
    cout << f(s) << endl; // 輸出 dcba
    return 0;
}

遞歸邏輯驗證

  • f("abcd") → f("bcd") + "a"
  • f("bcd") → f("cd") + "b"
  • f("cd") → f("d") + "c"
  • f("d") → "d"
  • 回溯組合:"d"+"c"+"b"+"a" = "dcba"

修正語法後即可正常編譯執行,遞歸邏輯本身正確。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved