zoukankan      html  css  js  c++  java
  • 未名湖边的烦恼问题

    http://blog.csdn.net/f_zyj/article/details/50358965

    //在以上的博客看到的,博主把我的疑问都解答了!

     

    分析:因为排在第一个永远只能是还鞋的人,那么代码的实现上会比较别扭。我们换成从最后一位开始,那么就没有这个问题了。

      

    #include <stdio.h>
    int FangAn(int m,int n);
    
    int main(int argc, const char * argv[])
    {
        int m=0,n=0,s=0;
        scanf("%d%d",&m,&n);
        s=FangAn(m, n);
        printf("%d
    ",s);
        return 0;
    }
    
    
    //代码实现的核心部分是从最后排在最后的那位人开始的
    //因为第一位永远只能是还鞋的人,那么代码的实现会很别扭,所以思路转换成从最后一位人开始排列 
    int FangAn(int m,int n)
    {
        //m<n的时候,即排在前面的没有一个是还鞋的,不符合题目要求,函数开始返回 
        if (m<n)
        {
            return 0;
        }
        //当需要借鞋的人数==0,即没有的时候,此次排列是成功的 
        if (n==0)
        {
            return 1;
        }
        //假设两种情况,一种是排一个还鞋的,一个是排借鞋的 
        return FangAn(m-1, n)+FangAn(m, n-1);//起初,我并不能理解这部分
    }
  • 相关阅读:
    linux输入输出及vim管理
    Linux系统结构及常用命令
    Django
    python 基础
    python 路径
    初始化项目结构
    drf操作
    01.Django基础
    Oracle 中如何判断一个字符串是否为数字
    oracle管理权限与角色(篇1)
  • 原文地址:https://www.cnblogs.com/UncleXiang/p/6290129.html
Copyright © 2011-2022 走看看