hdu 2048 神、上帝以及老天爷
这个题让输出整得好惨。本题的思路是看第n个人的情况,若第n个人拿了他前面(n-1)个人的东西,而这个人正好拿了第n个人的东西,则这个事件发生必然为f(n-2),另一种情况两人的物品并没有互换,则剩下的人再继续进行这件事,f(n-1)。发生的总的可能性就是(n-1)*(f(n-1)+f(n-2)).注意要输出%要连着两个%才行。
[cpp]
<SPAN style="FONT-SIZE: 18px">#include<iostream>
#include<stdio.h>
using namespace std;
_int64 a[21][2];
int main()
{
int i,C,n;
a[2][1]=1;
a[2][0]=2;
a[3][1]=2;
a[3][0]=6;
for(i=4;i<=20;i++)
{
a[i][1]=(i-1)*(a[i-1][1]+a[i-2][1]);
a[i][0]=a[i-1][0]*i;
}
cin>>C;
while(C!=0)
{
cin>>n;
printf("%.2f%%\n",a[n][1]*100.0/a[n][0]);
C=C-1;
}
return 0;
}
</SPAN>
#include<iostream>
#include<stdio.h>
using namespace std;
_int64 a[21][2];
int main()
{
int i,C,n;
a[2][1]=1;
a[2][0]=2;
a[3][1]=2;
a[3][0]=6;
for(i=4;i<=20;i++)
{
a[i][1]=(i-1)*(a[i-1][1]+a[i-2][1]);
a[i][0]=a[i-1][0]*i;
}
cin>>C;
while(C!=0)
{
cin>>n;
printf("%.2f%%\n",a[n][1]*100.0/a[n][0]);
C=C-1;
}
return 0;
}
补充:软件开发 , C++ ,