关闭

求组合数

106人阅读 评论(0) 收藏 举报
分类:
  • 描述:编写一个函数,求从n 个不同的数中取r 个数的所有选择的个数。
  • 输入: 输入n 和r 的值; 当用户输入0 0 时,程序结束。
  • 输出:根据公式: C(n,r) = C(n, r-1) * (n - r + 1) / r 输出运算结果 输入数据不满足题意时候,输出”error!”
  • 输入样例:5 3

10 20

50 3

0 0

  • 输出样例:10

error!

19600

#include<iostream>
using namespace std;
int main()
{
    int C1=1,C2=1;
    int i,j,m,n,temp;
    while(1)
    {
        C1=1,C2=1;  //每次输入前都要初始化
        cin>>m>>n;
        temp=n;  //保存n值,方便后续的运算
        if(m==0&&n==0)
            break;
        else if(m<n)
            cout<<"error!"<<endl;
        else
        {
            for(i=0;i<n;i++)
            {
                C1=C1*m;
                m--;
                C2=C2*temp;
                temp--;
            }
            cout<<C1/C2<<endl;
        }
    }
    return 0;
}
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6847次
    • 积分:367
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条