tyvj 1289 k类每类无限个,共取n个的组合公式为C(k+n-1,n)

本文介绍了一个关于中秋节博饼活动的数学问题及其解决方案。问题要求计算给定数量的骰子在投掷后可能出现的不同组合总数,忽略顺序差异。文章提供了一段C++代码实现,用于高效计算这一数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
From lwz_th
中秋节的骰子
 
   
   
 背景 Background 
   中秋节,也是lina的生日,飘飘乎居士自然要在博饼上大显身手了!!
   
   
 描述 Description  
    所谓博饼,简单的说就是玩骰子。现在,为了庆祝lina的生日,飘飘乎居士一共准备了n个骰子,他想知道,这n个骰子在掷出去以后,一共会出现多少总情况?对于所有的骰子,没有任何的顺序可言。举个例子,假设是2个骰子,出现1 2与出现 2 1认为是相同的一种。
   
   
 输入格式 Input Format 
  一个自然数n,表示一共n个骰子
对于50%的数据 0<n<=50
对于100%的数据 0<n<=100
   
   
 输出格式 Output Format 
  一个数,即n个骰子总共有多少总情况
数据保证答案在longint之内
   
   
 样例输入 Sample Input  
 
   
   
 样例输出 Sample Output  
 
   
   
 时间限制 Time Limitation 
  各个测试点1s
   
   
 注释 Hint 
  对于50%的数据 1<=n<=50
对于100%的数据 1<=n<=100
答案不会超出longint

 

 

 

 

 

 

 

#include<iostream>
#include<cstdio>
using namespace std;
double C(int n,int m)
{
    if(m>n/2) m=n-m;
    double cnt=1;
    for(int i=1;i<=m;i++)
    {
        cnt=cnt*(n-i+1)/i;
    }
    return cnt;
}
int main()
{
    int n,k=6;
    while(scanf("%d",&n)==1)
    {
        printf("%.0lf/n",C(n+k-1,n));
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值