c++求帮助 需要大佬帮忙看下

.兮晓珺 2019-03-21 02:52:34
用for语句怎么求m!/n!(m-n)!
...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻箬笠 2019-03-22
  • 打赏
  • 举报
回复
float result = 1.0;
if (m > n && n > 0) {
for (int i = m; i > 0; i --) {
result *= i;
if (i <= n)
result /= i;
if (i <= (m - n);
result /= i;
}
}

这个是纯循环的用法
轻箬笠 2019-03-22
  • 打赏
  • 举报
回复
刚手算了下,你应该是p=m!/(n! * (m-n)!)
那结果应该是factorial(m) * 1.0 / (factorial(n) * factorial(m - n));
因为你要的结果是浮点数,需要乘上1.0
轻箬笠 2019-03-22
  • 打赏
  • 举报
回复
p=m!/n!(m-n)!这段表示
p=m!/(n! * (m-n)!)还是p=(m!/n!)*(m-n)!
.兮晓珺 2019-03-21
  • 打赏
  • 举报
回复
引用 3 楼 weixin_44810984的回复:
[quote=引用 1 楼 轻箬笠的回复:]
long factorial(int n)
{
if (n < 2) return n;
return n * factorial(n - 1);
}

你要的结果应该就是
factorial(m) / factorial(n) * factorial(m - n);
求p=m!/n!(m-n)!的值,其中m与n为两个整数,且要求m>n, 输出为单浮度精点,当m=12,n=8时 出去结果为495.000000 用循环 嘿嘿[/quote] 这个我写了好几遍 但是输入程序不对
.兮晓珺 2019-03-21
  • 打赏
  • 举报
回复
引用 1 楼 轻箬笠的回复:
long factorial(int n)
{
if (n < 2) return n;
return n * factorial(n - 1);
}

你要的结果应该就是
factorial(m) / factorial(n) * factorial(m - n);
求p=m!/n!(m-n)!的值,其中m与n为两个整数,且要求m>n, 输出为单浮度精点,当m=12,n=8时 出去结果为495.000000 用循环 嘿嘿
.兮晓珺 2019-03-21
  • 打赏
  • 举报
回复
哦哦好的呢 谢谢啦 嘿嘿
轻箬笠 2019-03-21
  • 打赏
  • 举报
回复
long factorial(int n)
{
if (n < 2) return n;
return n * factorial(n - 1);
}

你要的结果应该就是
factorial(m) / factorial(n) * factorial(m - n);

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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