【HDU】1570 A C (排列、组合)

问题描述
当你看到标题“AC”时,你是否兴奋?如果答案是YES,那么AC;

你必须在学校学习这两个组合公式。如果你忘记了,请看照片。




现在我会给你n和m,你的任务是计算答案。
 

输入
在第一行中,有一个整数T表示测试用例的数量。
然后T行在T行中。
每个案例包含一个字符'A'或'C',两个整数代表n和m。(1 <= N,M <= 10)
 

产量
对于每种情况,如果字符是'A',计算A(m,n),如果字符是'C',则计算C(m,n)。
并在一行中打印答案。
 

示例输入
 
 
2A 10 10C 4 2
 

示例输出
 
 
3628800
6

    

    一遍AC,但是感觉我写的有点麻烦了。  

    代码:

#include <stdio.h>

int main(){
    int N,m,n;
    char c [2];
    长久的回答;
    的scanf( “%d”,&N);
    而(N-){
        scanf(“%s%d%d”,c,&n,&m);
        ANS = 1;
        if(c [0] =='A'){
            if(n == m){
                for(int i = 1; i <= n; i ++){
                    ANS * = I;
                }
                的printf( “%LLD \ n” 个,ANS);
            }
            否则如果(m == 1)
                的printf( “%d \ N”,N);
            其他{
                for(int i = 1; i <= n; i ++){
                    ANS * = I;
                }
                for(int i = 1; i <= nm; i ++){
                    ANS / = I;
                }
                的printf( “%LLD \ n” 个,ANS);
            }
            继续;
        }
        else if(c [0] =='C'){
            如果(n == m)
                的printf( “1个\ n”);
            否则如果(m == 1)
                的printf( “%d \ N”,N);
            其他{
                for(int i = 1; i <= n; i ++){
                    ANS * = I;
                }
              // printf(“%lld \ n”,ans);
                for(int i = 1; i <= m; i ++){
                    ANS / = I;
                }
              // printf(“%lld \ n”,ans);
                for(int i = 1; i <= nm; i ++){
                    ANS / = I;
                }
                的printf( “%LLD \ n” 个,ANS);
            }
            继续;
        }
    }
    返回0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值