17级台阶.cpp

来自「C++源代码集」· C++ 代码 · 共 41 行

CPP
41
字号
#include <iostream> 
#include <list> 
using namespace std; 

int nWays = 0; 
void Walk(int stepsLeft, int stepsGo, list<int> steplist) 
{ 
 if(stepsLeft == stepsGo) 
   { 
     steplist.push_back(stepsGo); 
     nWays++; 
     cout <<"Solution "<<nWays<<" : "; 
     list<int>::const_iterator lstIter; 
     for(lstIter = steplist.begin(); lstIter != steplist.end(); lstIter++) 
       { 
         cout <<*lstIter<<" "; 
       } 
     cout <<endl; 
   } 
 else if(stepsLeft > stepsGo) 
   { 
     steplist.push_back(stepsGo); 
     for(int i = 1; i<=3; i++) 
       { 
         Walk(stepsLeft-stepsGo, i, steplist); 
       } 
   } 
} 
      
  
void main() 
{ 
 int i; 
 list<int> lstSteps; 
 for(i=1; i<=3; i++) 
   { 
     //lstSteps.pushback(i); 
     Walk(17, i, lstSteps); 
   } 
} 
   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?