本文共 1411 字,大约阅读时间需要 4 分钟。
七个for。或者写成DP。
//#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef pair pii;#define pb(a) push_back(a)#define INF 0x1f1f1f1f#define lson idx<<1,l,mid#define rson idx<<1|1,mid+1,r#define PI 3.1415926535898template T min(const T& a,const T& b,const T& c) { return min(min(a,b),min(a,c));}template T max(const T& a,const T& b,const T& c) { return max(max(a,b),max(a,c));}#define clr0(a) memset(a,0,sizeof(a))#define clr1(a) memset(a,-1,sizeof(a))void debug(){#ifdef ONLINE_JUDGE#else freopen("d:\\in.txt","r",stdin); // freopen("d:\\out1.txt","w",stdout);#endif}int getch(){ char ch;// while((ch=getchar())!=EOF)// {// if(ch!=' '&&ch!='\n')return ch;// } scanf(" %c",&ch); return ch;}int vis[50][10];double dp[50][10];double f(int n,int res){ if(res==0) { if(n==0)return 1; else return 0; } if(vis[n][res])return dp[n][res]; vis[n][res]=1; double x=0; for(int i=1;i<=6;i++) { if(n-i>=0) x+=f(n-i,res-1)/6; } return dp[n][res]=x;}int main(){ int n; while(scanf("%d",&n)!=EOF) { memset(vis,0,sizeof(dp)); printf("%.4lf\n",f(n,7)); } return 0;}
转载于:https://www.cnblogs.com/BMan/p/3272187.html