各位大侠!求救!

放羊大亨 2009-11-26 06:25:42
求一个 n!/(r!(n-r)!) 的算法,分别用 递归和非递归两种方法。
n和r 是用户输入的, 递归时用的公式是: C(n,r)= C(n,r-1)*(n-r+1)/r.
谢谢!
...全文
107 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
forsiny 2009-11-26
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int jiecheng(int n);
int digui(int n, int r);

int main()
{
int n,r,c1,c2;
cin>>n>>r;

c1 = jiecheng(n)/(jiecheng(r)*jiecheng(n-r));
c2 = digui(n,r);

cout<<c1<<","<<c1<<endl;
return 0;
}

int jiecheng(int n)
{
int result = 1;
for(int i=2;i<=n;++i)
result = result*i;
return result;
}

int digui(int n, int r)
{
if(r=1)
{
return n;
}
else
{
return digui(n,r-1)*(n-r+1)/r;
}
}



随便写的,你应该再加些输入n,r合法性检查之类的。
大致就是递归的递归,
不递归的用阶乘做就好了。
效率我没有考虑。这是最简单的。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧