黑马程序员技术交流社区
标题: 寻求大神指导,看到的一个微软面试题~ [打印本页]
作者: yu2323637 时间: 2016-5-29 21:43
标题: 寻求大神指导,看到的一个微软面试题~
微软的一个面试题目:一只青蛙一次可以跳一级台阶,也可以一次跳两级台阶,求该青蛙跳上n级台阶总共有多种跳法。
目前接触,掌握循环结构使用,求一个基础班同学们都能看懂的解法~!
作者: yu2323637 时间: 2016-5-29 21:44
火钳刘明自己顶一个先~~~求各位大神指点、、、、、
作者: oyjs1989 时间: 2016-5-29 23:35
本帖最后由 oyjs1989 于 2016-5-30 23:27 编辑
#include <stdio.h>
int main(int argc, const char * argv[]) {
// insert code here...
int n = 0 ,totalsum = 0;
printf("请输入台阶数:");
scanf("%d",&n);
// 实际方法为一串组合累加 1+Cn 1 +Cn-1 2+......+Cn/2 n/2
//每多跳2层,跳的次数就减少1,数组下标减少1, 而两层的次数+1
// 比如 输入5 第一次 假定为全部为单层 方法为1
// 第二次 假定一次双层 方法为C下标为n-1 商标为n的组合的值 即 n-1 4
// 第三次 假定二次双层 方法次数 为n-2*n-3 即为 6
// 依次类推
for(int i = 0;i<=n;i++,n--) { //每多一次2级跳 i+1 跳的次数则减1 n-1
int k = n;
int sum = 1;
// 跳i次双层时 可以有几种方法
for(int j = 1;j<=i;j++){
sum = k*sum/j;
k--;
}
// 统计全部方法
totalsum = totalsum+sum;
}
// 输出方法
printf("青蛙可以调的次数是%d\n",totalsum);
return 0;
}
作者: 选择天涯 时间: 2016-5-29 23:52
我们班的大神 提问 虽然不懂行 但是必须支持 哈哈哈哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |