作者mm412537r (绿茶咖啡)
看板C_and_CPP
标题[问题] 利用递回写 nCr
时间Tue Dec 8 12:23:34 2009
( *[1m *[m 为色码,可以按 Ctrl+V 预览会显示的颜色 )
( 未必需要依照此格式,文章条理清楚即可 )
遇到的问题: (题意请描述清楚)
利用 for回圈可以写出排列组合中的nCr 但是老师这次要我们利用function call递回
写nCr 并且提供递回式 巴斯卡定理-> nCr = (n-1)Cr + (n-1)C(r-1)
....
我除了想到先弄一个int C(int n, int r)之外..就不知道该怎麽办了 囧
希望得到的正确结果:
利用巴斯卡定理写出的nCr 而非利用阶层相除
程式跑出来的错误结果:
完全想不到怎麽写 囧
开发平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++
有问题的code: (请善用置底文标色功能)
Ans=?????(不知道要写甚麽XD)
Ans = C (n-1,r) + C (n-1, r-1);
return Ans;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.221.55
1F:→ bibo9901:int C(int n,int r){return C(n-1,r)+C(n-1,r-1);} 这样? 12/08 12:32
2F:→ bibo9901:但是这样很容易爆掉...XD\ 12/08 12:33
3F:推 cismjmgoshr:C(n,0)=1 C(n,n)=1 要加这两个终止条件 12/08 12:50
4F:推 bibo9901:对吼 感谢楼上提醒... 12/08 13:17
5F:推 holymars:开个二维阵列存C(n,r)的值啊 12/08 14:36
6F:→ netsphere:17956 12/08 17:12
7F:→ mm412537r:3Q..I get it ^_^ 12/09 03:46