C++作业03_02: 下楼问题。从楼上走到楼下共有h个台阶,每一步有三种走法
2013-11-28 10:02
330 查看
/* 作业03, 练习2 下楼问题。从楼上走到楼下共有h个台阶,每一步有三种走法: 走1个台阶,走2个台阶,走3个台阶。问有多少可走的方案。用递归思想编程。 */ #include <stdio.h> #include <string.h> #include <stdlib.h> static int stack[1024]; // 存放每一步的台阶数 static int steps = 0; // 走过的步数 static int num_of_method = 0; // 多少种走法 void NextStairs(int n) { if(n == 0) { /* 走完所有台阶,打印本次的走法,即曾经走过的步骤 */ printf("第%3d种走法[需%3d步] : ", ++num_of_method, steps); int i; for(i=0; i<steps; i++) printf("%d ", stack[i]); printf("\n"); return; } if(n >= 1) { stack[steps++] = 1; // 本次走1个台阶 NextStairs(n-1); steps --; } if(n >= 2) { stack[steps++] = 2; // 本次走2个台阶 NextStairs(n-2); steps --; } if(n >= 3) { stack[steps++] = 3; // 本次走3个台阶 NextStairs(n-3); steps --; } } int ex03_02() { int n; printf("enter a positive number: n="); scanf("%d", &n); NextStairs(n); return 0; }
相关文章推荐
- C++作业03_01: 将写的n封信和n个信封全部装错。设Dn为n封信装错信封可能的种类
- C++作业02_02: 4 名专家对 4 款赛车进行评论
- C++作业02_01: 新浪微博的消息 ID ( MID ) 有字符型和数字型两种形态,可以互相转换
- C++作业01_02:100元钱,由2元、1元、5角三种面额组成,且一共有100张,试打印出各种组合
- C++作业 01_01: 读入一个整数,将各位数上的数拆下来并输出
- vc++窗口的创建过程(MFC消息机制的经典文章)
- C语言学习中自己经验总结
- VC++中的DDX和DDV
- VC++之使用CFile类操作文件
- test1-1(谨以此开始我的c++之旅)
- Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
- C与C++风格字符串
- Socket的正确关闭
- 对话框的建立(模态与非模态)
- 均值滤波器 ( Mean Filter ) C++ 实现
- vc++中的编译链接错误error link2001 unresolved external symbol _main解决办法
- 中值滤波器 ( Median Filter ) C++ 实现
- 临界区CriticalSection 的安全使用
- VS2008 C++ 项目怎样添加“依赖”、“库目录”和“包含目录”
- 【语言】C++野指针分析