会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> C/S程序开发专区 >> C/C++编程论坛 >> 各位帮忙理解一段代码 谢谢了
首页
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 208 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
 * 贴子主题:各位帮忙理解一段代码 谢谢了 悬赏分50 [已结帖] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 陆逊伯言 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:28
  专家分:42
  提问帖:8/7
  回答帖:8
  总帖数:28
  经验值:95
  注 册:2008-9-20
给陆逊伯言发送一个短消息 把陆逊伯言加入好友 查看陆逊伯言的个人资料 搜索陆逊伯言在C/C++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子楼主

发贴心情 各位帮忙理解一段代码 谢谢了

#include <iostream>
using namespace std;

void main()
{int p(const int &,const int &);   //声明
 cout<<p(4,2)<<endl;
}

int p(const int &n,const int &m) 
 //以下是对函数功能的简单描述
 //递归算法
 //如参数是4,2就是表示哪几个数相加等于4,而且加数中不能有数字大于2(可等于)
 //如 err:4=3+1;
 //如  ok:4=1+1+1+1;4=1+2+1;4=2+2; 参数为4 2时就返回3
 //题目中参数是6,6  这里返回值是11 是把6这个单独的数也算上了 :6=6;
{if(n<1||m<1)return 0;
 if(n==1||m==1)return 1;
 if(n<m)return p(n,n);
 if(n==m)return p(n,m-1)+1;
 return p(n,m-1)+p(n-m,m); //此句理解不了
}

发帖:2008-10-6 22:13:00
  鲜花(0)  鸡蛋(0)
 361378900 帅哥哟,离线,有人找我吗?狮子座1987-8-13
  
  
  头 衔:学习中。。。
  等 级:论坛游侠
  积 分:3897
  专家分:2202
  提问帖:7/7
  回答帖:190
  总帖数:291
  经验值:441
  注 册:2007-12-30
给361378900发送一个短消息 把361378900加入好友 查看361378900的个人资料 搜索361378900在C/C++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子2

发贴心情 

p(n,m)如果n>m,那么(n,m)的连加组合可以看作是几个数都小于m的数的连加组合和其中至少有一个数等于m的连加组合。
而几个数都小于m的数的连加组合的个数肯定=p(n,m-1)
其中至少有一个数等于m的连加组合的值如果都减掉一个m,那么他们的值还是相等且等于n-m,所以他们的组合可以相当与(n-m,m)的组合再加上一个m,那么这些组合的个数也就=p(n-m,m)了
所以当n>m时p(n,m)=p(n,m-1)+p(n-m,m) ,由于递归过程中n和m的值不断在缩小所以这样的递归可以最终求出p(n,m)的值

 不知道楼主能不能明白我说的意思


走过了就不要再回头。。。。。。。。。。

发帖:2008-10-7 1:01:00
 陆逊伯言 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:28
  专家分:42
  提问帖:8/7
  回答帖:8
  总帖数:28
  经验值:95
  注 册:2008-9-20
给陆逊伯言发送一个短消息 把陆逊伯言加入好友 查看陆逊伯言的个人资料 搜索陆逊伯言在C/C++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子3

发贴心情 

其中至少有一个数等于m的连加组合的值如果都减掉一个m,那么他们的值还是相等且等于n-m,所以他们的组合可以相当与(n-m,m)的组合再加上一个m,那么这些组合的个数也就=p(n-m,m)了

解释的太好了 谢谢

发帖:2008-10-7 21:41:00
 lyx8881 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:167
  专家分:32
  提问帖:2/2
  回答帖:3
  总帖数:9
  经验值:66
  注 册:2008-5-11
给lyx8881发送一个短消息 把lyx8881加入好友 查看lyx8881的个人资料 搜索lyx8881在C/C++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子4

发贴心情 

小弟看了,超级受用,多谢大哥,说的言简意赅,正中要害,厉害啊,尤其是最后一句,启发了我很多,顶
发帖:2008-10-8 0:27:00

本主题贴数4,分页:[返回帖子列表] [上一页] [1] [下一页]

此主题已经结帖:

361378900-50

 *快速回复:各位帮忙理解一段代码 谢谢了  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]

    管理选项锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告