zoukankan      html  css  js  c++  java
  • 1-1-折纸问题

     1 /*
     2     题目描述:
     3         请把纸条竖着放在桌子上,然后从纸条的下边向上方对折,压出折痕后再展开。此时有1条折痕,
     4         突起的方向指向纸条的背面,这条折痕叫做“下”折痕 ;突起的方向指向纸条正面的折痕叫做“上”折痕。
     5         如果每次都从下边向上方对折,对折N次。请从上到下计算出所有折痕的方向。
     6         给定折的次数n,请返回从上到下的折痕的数组,若为下折痕则对应元素为"down",若为上折痕则为"up".
     7         测试样例:
     8             1
     9             返回:["down"]
    10 */
    11 /*
    12     使用递归实现:
    13     折叠n次时的折痕 等于 折叠n-1次时的折痕+“down”+折叠n-1次时的折痕的逆的反
    14       n = 1时,折痕为:下;
    15     则n = 2时,折痕为:下 下 上;
    16       n = 3时,折痕为:下下上 下 下上上;
    17 */
    18 
    19 #include <iostream>
    20 #include <vector>
    21 #include <string>
    22 using namespace std;
    23 
    24 vector<string> foldPaper(int n){
    25     vector<string> fp;
    26     if (n == 1){
    27         fp.push_back("down");
    28         return fp;
    29     }
    30     vector<string> fold = foldPaper(n-1);
    31     for (int i = 0; i < fold.size(); i++)
    32         fp.push_back(fold[i]);
    33     fp.push_back("down");
    34     for (int i = fold.size()-1; i >= 0; i--){
    35         if (fold[i] == "down")
    36             fp.push_back("up");
    37         else
    38             fp.push_back("down");
    39     }
    40     return fp;
    41 }
    42 
    43 int main(){
    44     vector<string> result;
    45     result = foldPaper(4);
    46     for (int i = 0; i < result.size(); i++)
    47         cout << result[i] << endl;
    48     return 0;
    49 }
  • 相关阅读:
    WCF Server Console
    Restart IIS With Powershell
    RestartService (recursively)
    Copy Files
    Stopping and Starting Dependent Services
    多线程同步控制 ManualResetEvent AutoResetEvent MSDN
    DTD 简介
    Using Powershell to Copy Files to Remote Computers
    Starting and Stopping Services (IIS 6.0)
    java中的NAN和INFINITY
  • 原文地址:https://www.cnblogs.com/qianmacao/p/4884701.html
Copyright © 2011-2022 走看看