题目描述
小明非常喜欢做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
解题思路: 无话可说,看代码呗,gcd ==> 最大公约数。
AC代码:
#include <stdio.h>int gcd(int x,int y){return y>0 ? gcd(y,x%y) : x;
}int main()
{int K,n,m,Cn,Cm,t;scanf("%d",&K);while ( K --){scanf("%d %d",&n,&m);if (m < 3) puts("0");else if ( n == m) puts("1");else{Cn = n*(n-1)*(n-2)/6;Cm = m*(m-1)*(m-2)/6;t = gcd(Cn,Cm);printf("%d/%d\n",Cm/t,Cn/t);}}return 0;
}