XTU,C语言, A+B III

题目描述

小明非常喜欢做a+b的练习,他不清楚自己是否做对了,所以想找小文帮他看一下。 但是小文不喜欢做a+b,所以他只是随意地抽了3题来看一下。 假设小明做了n道,对了m道,那么抽的这三道题都对的概率是多少?

输入

第一行是一个整数K,表示样例的个数。 每个样例占一行,为两个整数n和m,0≤m≤n≤1,000 且3≤n。

输出

每行输出一个样例的结果,如果概率是1或者0,输出1或0。否则输出a/b的分数形式,a和b互质。

样例输入

3
3 0
3 3
4 3

样例输出

0
1
1/4

小明做了n道,对了m道,那么抽的这三道题都对的概率为C(3,m)/C(3,n)。

因为输出的要是分数形式且分子分母互质,所以要求分子分母的最大公因数,再有分子分母同除以最大公因数,然后以分数形式分别输出即可。

#include <stdio.h>

int c(int a)//求C(3,a)
{
    int b;
    b = a*(a-1)*(a-2)/6;
    return b;
}
int down(int x,int y)//求最大公因数
{
    int z = 1;
    if(x<y)//如果x小于y,要将其互换
    {
        x = x + y;
        y = x - y;
        x = x - y; 
    }
    while(z!=0)
    {
        z = x % y;
        x = y;
        y = z;
    }
    return x;
}
int main() 
{
	int k,m,n;
	scanf("%d",&k);
	while(k--)
	{
	    scanf("%d%d",&m,&n);
	    if(m==n)
	    printf("1\n");
	    else if(n<3)
	    printf("0\n");
	    else
	    printf("%d/%d\n",c(n)/down(c(m),c(n)),c(m)/down(c(m),c(n)));
	}
	return 0;
}

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值