| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:一计算题编程 看了一小时不知道哪错了 求教!!
只看楼主 加入收藏
逆时光飞
Rank: 2
等 级:论坛游民
帖 子:27
专家分:49
注 册:2011-11-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
一计算题编程 看了一小时不知道哪错了 求教!!
#include<stdio.h>

int fx(int m, int n) ;

int main()
{
    int i, j ;
    scanf("%d %d", &i, &j) ;

    printf("%d\n", fx(i, j) ) ;

    return 0 ;

}

int fx(int m, int n)

{
    int fx, z  ;
    if(m==1)
        return n ;
    if(n==1)
        return m ;
    if(n>1 && m>1)
         
return fx(m-1,n) + fx(m,n-1);
      
}

题目描述
一个简单的计算,你需要计算f(m,n),其定义如下:
当m=1时,f(m,n)=n;
当n=1时,f(m,n)=m;
当m>1,n>1时,f(m,n)= f(m-1,n)+ f(m,n-1)
输入
第一行包含一个整数T(1<=T<=100),表示下面的数据组数。
以下T行,其中每组数据有两个整数m,n(1<=m,n<=2000),中间用空格隔开。
输出
对每组输入数据,你需要计算出f(m,n),并输出。每个结果占一行。
示例输入
2
1 1
2 3
示例输出
1
7
搜索更多相关主题的帖子: 编程 include return 
2011-11-08 20:41
tan2010
Rank: 2
等 级:论坛游民
帖 子:66
专家分:71
注 册:2011-10-13
收藏
得分:3 
#include<stdio.h>
int fx(int m, int n)

{
    int s1,s2,s3;
    if(m==1)
        return n;
    if(n==1)
        return m;
    if(n>1 && m>1)
    {
        s1=fx(m-1,n);  
      s2=fx(m,n-1);
       s3=s1+s2;
    }
    return s3;
}


int main()
{
    int i, j ;
    scanf("%d,%d", &i, &j) ;

    printf("%d\n", fx(i, j) );

    return 0 ;

}
这我修改的,你看下!!
2011-11-08 21:07
tan2010
Rank: 2
等 级:论坛游民
帖 子:66
专家分:71
注 册:2011-10-13
收藏
得分:0 
if(n>1 && m>1)
    {
        s1=fx(m-1,n);  
      s2=fx(m,n-1);
       s3=s1+s2;
    }
    return s3;
这个不用改也是可以的!!
2011-11-08 21:08
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:7 
我看了这么久,我就不知道那个T是怎么回事儿,不过其他的还可以运行.......
程序代码:
#include<stdio.h>
int fx(int m, int n) ;
int main()
{
    int i, j ;
    scanf("%d %d", &i, &j) ;

    printf("%d\n", fx(i, j) ) ;

    return 0 ;

}

int fx(int m, int n)
{
    int w, z  ;
    if(m==1)
        return n ;
    if(n==1)
        return m ;
    if(n>1 && m>1)
     w= fx(m-1,n) + fx(m,n-1);   
    return w;
     
}
2011-11-08 21:10
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
看起来像一道ACM题。
作为ACM题:
1、你的数据读入格式不对,注意看题目的描述;
2、递归函数在理论上没问题,但一看就知道时间、空间消耗太多(2^min(m,n));
3、解远大于变量能存储的范围,事实上我严重怀疑你的题有笔误,因为f(2000,2000)是一个非常大的数,除非这道题就是想考察你大数运算。

重剑无锋,大巧不工
2011-11-08 21:14
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:10 
这个程序中就用到了T....
程序代码:
#include<stdio.h>
int fx(int m, int n) ;
int main()
{
    int i, j ,T,y,p;
    int a[100];
    scanf("%d", &y) ;
    printf("\n");
    for(T=1,p=0;T<=y,p<=y-1;T++,p++)
    { scanf("%d %d", &i, &j) ;
      a[p]=fx(i,j);
   
    }
   for(p=0;p<=y;p++)
    printf("%d\n",a[p]) ;

    return 0 ;

}

int fx(int m, int n)
{
    int w, z  ;
    if(m==1)
        return n ;
    if(n==1)
        return m ;
    if(n>1 && m>1)
     w= fx(m-1,n) + fx(m,n-1);   
    return w;
     
}
2011-11-08 21:39
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:0 
补充一下啊,循环那里要修改一下
for(p=0;p<=y-1;p++)
2011-11-08 21:42
快速回复:一计算题编程 看了一小时不知道哪错了 求教!!
数据加载中...
 
   



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

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