题目链接
思路:
根据题目先给出概率公式:不亏本的数量/总数量。
因为每买一张彩票有4种方法,那么买n张彩票就有4的n次方种方法。
因为每张票3元,所以不亏本的金额范围只能为3n——4n。
ac代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
#define int long long
int dp[33][150];
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int t; cin>>t; int ans=0;
dp[0][0]=1;
for(int i=1;i<=t;i++){//统计不同金额数的选择方式数
for(int j=i;j<=4*i;j++){
for(int k=1;k<=4;k++){
if(j>=k){
dp[i][j]+=dp[i-1][j-k];
}
}
}
}
for(int i=3*t;i<=4*t;i++){//统计符合要求的选择方式数
ans+=dp[t][i];
}
int sum=pow(4,t);//总选择数
int gbs=gcd(ans,sum);//计算最大公倍数
cout<<ans/gbs<<"/"<<sum/gbs<<endl;
return 0;
}