{
  "type": "code_options",
  "author": "csdn.net",
  "source": "solution.md",
  "exercise_id": "ed86cdb2708f4efea6c233f131c4a005",
  "keywords": "算法初阶,基础知识,分治策略,用主方法求解递归式",
  "title": "擅长编码的小k",
  "desc": [
    {
      "content": "\n题目描述\n小k不仅擅长数学，也擅长编码。有一种编码方式如下：\n首先写下文本中间的字符（如果文本中的字符编号为1..n，那么中间一个字符的编号为(n+1)DIV 2，其中DIV为整除的意思），然后 用这个方法递归地写下左边，最后再按这个方法递归地写下右边。例如，单词为orthography则其编码为gtorhoprahy。即先写中间的那个字符g，再对ortho递归地编码，最后将raphy递归地编码就得到了gtorhoprahy。\n给一个原来的文本，求出编码后的 文本。\n输入\n一行字符，表示原始的文本内容。\n输出\n一行字符，表示编码后的文本内容。\n样例\n输入  \northography\n输出  \ngtorhoprahy\n提示\n100%的数据，字符串长度不超过20000",
      "language": "markdown"
    }
  ],
  "answer": [
    {
      "content": "",
      "language": "cpp"
    }
  ],
  "prepared": [
    [
      {
        "content": "",
        "language": "cpp"
      }
    ],
    [
      {
        "content": "",
        "language": "cpp"
      }
    ],
    [
      {
        "content": "",
        "language": "cpp"
      }
    ]
  ],
  "template": {
    "content": "#include <iostream>\n#include <cstring>\nusing namespace std;\nvoid shuchu(char *a,int m, int n)\n{\n\tif(n<=0||m<=0||m>n)\n\t{\n\t\treturn;\n\t}\n\telse\n\t{\n\t\tcout << a[(m+n)/2];\n\t\tshuchu(a,m,(m+n)/2-1);\n\t\tshuchu(a,(m+n)/2+1,n);\n\t}\n}\nint main()\n{\n\tchar a[20000];\n\tchar b[20001];\n\tcin >> a;\n\tfor(int i=0; i<20000; i++)\n\t{\n\t\tb[i+1] = a[i];\n\t}\n\tint n = strlen(a);\n\tshuchu(b,1,n);\n\treturn 0;\n}",
    "language": "cpp"
  },
  "node_id": "dailycode-931e77e54385459da6bd004f6f13b187",
  "license": "csdn.net",
  "created_at": 1637894159,
  "topic_link": "https://bbs.csdn.net/topics/600469956"
}