| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3195 人关注过本帖
标题:求助 关于上楼梯的递归解法
只看楼主 加入收藏
wuhongyang10
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-12-9
收藏
 问题点数:0 回复次数:4 
求助 关于上楼梯的递归解法
就是那道经典的上楼梯题:n阶楼梯,每次上一层或两层,问共有几种走法。
我以前学pascal的,根据以前的方法编了如下程序:
#include <stdio.h>
void main()
{
int n; long sum;
long calc(int);
scanf("%d",&n);
sum=calc(n);
printf("%ld\n",sum);
}
long calc(int n)
{if (n=1) return(1);
if (n=2) return(2);
if (n>2) {return(calc(n-1)+calc(n-2));}
}
比如输入n=3,那么结果显然是3,但是程序结果是1,然后我用code::blocks的单步调试实在不爽,所以,来求助啦
请问哪里出了问题呢?
搜索更多相关主题的帖子: 解法 递归 楼梯 
2010-12-09 22:37
wuhongyang10
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-12-9
收藏
得分:0 
好吧,我承认我犯了低级错误
2010-12-09 22:44
wuhongyang10
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-12-9
收藏
得分:0 
好吧,我承认我犯了低级错误
2010-12-09 22:44
gaochizhen33
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:114
专家分:101
注 册:2010-11-4
收藏
得分:0 
条件判断语句 里 n==1 n==2 楼主写成了 n=1 n=2
2010-12-10 09:45
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
昨天晚上我也做了这道题,不过我用的不是递归的解法,而是用了一个数学公式,即在高中的时候学过的排列组合的方法 ,这是我写的代码:

# include <stdio.h>

double function(int x , int y) ;
double recursion(int n) ;
double a[1000] ;

int main()
{
    int n , m ;
    int i , j , x ;
    while(scanf("%d" , &n) != EOF)
    {
        i = 0 ;
        while(i < n)
        {
            scanf("%d" , &m) ;
            if(m == 1)
                a[i] = 0 ;
            else
            {
                m -= 1 ;
                a[i] = 1 ;
            }            
            x = m / 2 ;
            for(j = 1 ; j <= x ; j++)
                a[i] += function(j , m - j) ;
            i++ ;
        }
        for(i = 0 ; i < n ; i++)
            printf("%.lf\n" , a[i]) ;
    }
    return 0 ;
}

double function(int x , int y)
{
    double a , b , c, result ;
    a = recursion(x) ;
    b = recursion(y) ;
    c = recursion(y - x) ;
    result = b / (a * c) ;
    return result ;
}

double recursion(int n)
{
    double sum ;
    if(n == 1 || n == 0)
        return 1 ;
    else
        sum = n * recursion(n - 1) ;
    return sum ;
}


参考一下吧!!!


[ 本帖最后由 我菜119 于 2010-12-10 10:18 编辑 ]

愿用余生致力编程
2010-12-10 09:59
快速回复:求助 关于上楼梯的递归解法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055495 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved