题目大意:
有N个人,K张票,小S的编号是id,求解小S有多少概率能拿到一张电影票
Input

第一行包括三个正整数,N,K,Id(1<=K<=N<=10^9,1<=ID<=N )

Output

一行一个最简分数,表示小S可以看到电影的概率。
(如果概率为1或0,请输出1/1或0/1)

Sample Input

2 1 2

Sample Output

1/2
【样例解释】
一共两个人,筛选经过1轮,第1轮每个人被踢出的概率都是等概率的,所以答案是1/2。

Data Constraint
看电影
水题一道,这题就算想不出正解,但打标都有50分(具体看数据范围)下面来说正解:
找规律,不管小S在哪个位置,拿到电影票的机会都是k/n,再用辗转相除法求解就行了。

 #include <iostream>
 using namespace std;
 int yf (int a,int b)
 {
 	if (a==0)
 	return 0;
 	int t;
 	while (a%b!=0)
    {
    	int t=a%b;
    	a=b;
    	b=t;
    }
    return b;
 }
 int main()
 {
 	int n,k,id;
 	cin>>n>>k>>id;
 	if (k==0)
    {
    	cout<<"0/1";
    	return 0;
    }
 	
 	int mod=yf(k,n);
 	cout<<k/mod<<"/"<<n/mod;
 }

相关文章: